Четверг, 21 Ноября 2024, 14:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Программисты и котята [WEBGL]
Storm54Дата: Понедельник, 27 Февраля 2023, 16:19 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Цитата afq ()
Разве ты в unity указываешь объекту через какую камеру тебе смотреть на объект?

Я не знаю, что значит "через какую камеру тебе смотреть на объект". В Unity, как и в любом другом нормальном движке, можно сгруппировать объекты и рендерить каждую группу объектов с помощью различных параметров и, естественно, разными камерами. Настраивается это все в пару кликов:


Цитата afq ()
У тебя бы их было например три. Что в итоге? Давай представим такой код, хотя бы минималистический

Смотри, 0 строк в том же Unity:


Сам код, естественно, очень простой:

Код

var scene1 = new Scene();
var scene2 = new Scene();

scene1.AddObject(new Cube());
scene1.AddObject(new Cube());
scene1.AddObject(new Cube());

scene2.AddObject(new Cube());
scene2.AddObject(new Cube());
scene2.AddObject(new Cube());

var camera1 = scene1.AddObject(new Camera());
var camera2 = scene2.AddObject(new Camera());

...

camera1.Render();
camera2.Render();



Цитата afq ()
Странно, что ты еще не написал свой движок, или у тебя только критиковать чужой код получается?

Мне игроки деньги платят не за то, что я движок пишу, а за то, что создаю продукт.


Сообщение отредактировал Storm54 - Понедельник, 27 Февраля 2023, 16:32
afqДата: Понедельник, 27 Февраля 2023, 17:36 | Сообщение # 22
Разработчик
Сейчас нет на сайте
В общем объясняю. Каждый объект это матрица, будь то объект камеры, позиции, проекции, поворота. В шейдер мы либо передаем все эти матрицы для перемножения, либо перемножаем на процессоре. В матрице элементы расставлены так, чтобы можно было отобразить точку в нужном месте в пространстве. Помимо матриц мы также должны передать порцию вершин нашего спрайта например. Вершины спрайта в шейдер передаются как вектор из 3 единиц. Чтобы матрицы можно было с вектором перемножить, создаем вектор из 4 единиц и помещаем в него вектор из трех единиц. Перемножая матрицы и в конце результат перемножаем с вектором и результат получается вектор. Это и будет точка на экране. Я сейчас на window разработку перешел на direct3d и тут пока не выходит отобразить прямоугольник как в opengl. Пока не понимаю как.

А ты какие игры уже сделал?
drcrackДата: Понедельник, 27 Февраля 2023, 18:36 | Сообщение # 23
старожил
Сейчас нет на сайте
Цитата Storm54 ()
Мне игроки деньги платят не за то, что я движок пишу, а за то, что создаю продукт.

Цитата afq ()
А ты какие игры уже сделал?

Вы говорите на разных языках
Для afq единственный критерий успеха — "сделать" что-либо, желательно на голом opengl
Попытки обьяснить необходимость нескольких камер бессмысленны
Ему они не нужны, он уже "сделал" свою игру, задача выполнена, качество игры и ее дальнейшная судьба (и "движка" тоже) уже не важна
А ты Storm54 свой движок не сделал, поэтому в его глазах всегда будешь неудачником который умеет только в юнити кнопочки нажимать :D
afqДата: Понедельник, 27 Февраля 2023, 18:48 | Сообщение # 24
Разработчик
Сейчас нет на сайте
drcrack, блин, как ты умеешь написать, что смеяться охота.
afqДата: Пятница, 03 Марта 2023, 19:42 | Сообщение # 25
Разработчик
Сейчас нет на сайте
Я кстати придумал насчет камер. Можно передачу в шейдер сделать возможным передавать аргумент камеры и если передан NULL, то использовать глобальную камеру. Так можно будет усовершенствовать возможности движка.
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг