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