| Программисты и котята [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 свой движок не сделал, поэтому в его глазах всегда будешь неудачником который умеет только в юнити кнопочки нажимать
   |  |  |  |  | 
| 
| afq | Дата: Понедельник, 27 Февраля 2023, 18:48 | Сообщение # 24 |  |   Разработчик Сейчас нет на сайте | drcrack, блин, как ты умеешь написать, что смеяться охота. |  |  |  |  | 
| 
| afq | Дата: Пятница, 03 Марта 2023, 19:42 | Сообщение # 25 |  |   Разработчик Сейчас нет на сайте | Я кстати придумал насчет камер. Можно передачу в шейдер сделать возможным передавать аргумент камеры и если передан NULL, то использовать глобальную камеру. Так можно будет усовершенствовать возможности движка. |  |  |  |  |