Программисты и котята [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, то использовать глобальную камеру. Так можно будет усовершенствовать возможности движка.
|
|
| |