Создание новой камеры

Статус
В этой теме нельзя размещать новые ответы.
127
0
Здравствуйте. Меня интересует, как возможно создать еще одну камеру, привязанную к модели игрока. С камерами я вообще ни разу дел не имел, так что требуется помощь со стороны. Куда лезть ? Где искать ? Легко ли это ?
 
127
0
Ну, у меня есть задумка, я ее воплощаю. Для большей реалистичности в игре не хватает как раз этой камеры.
 
905
5
Рендер изменяй же! Самих камер нет, только фейкплееры.
 
127
0
laz2727 написал(а):
Рендер изменяй же! Самих камер нет, только фейкплееры.
В смысле фейкплееры ?

Я своими глазами видел мод, где игрок держал в руках 3D модель, в которой рендерилась еще одна камера. Меня это зацепило и хочу применять это в различных областях. Что это было ?

P.s. с создателем я пообщался, он сказал, что догонял как все это сделать месяц. Также сказал, что в коде 50% - мод, 50% - изменение исходников.
 
905
5
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
 
127
0
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Да хватит уже создавать игрока где ни попадя, только про новых игроков и думаешь.С чего ты вообще взял, что рендер привязан к игроку?? Он привязан в энтити, которая тупо хранит коорды и ничего не делает(существует только как переменная).
 
675
2
Evgeniy написал(а):
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
Может быть у программиста из этой группы чего-нибудь спросишь: Тыкс
 
127
0
Try4W написал(а):
Evgeniy написал(а):
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
Может быть у программиста из этой группы чего-нибудь спросишь: Тыкс
Спасибо, отписал ему.

Неужели анти ничего об этом не знает ?)
 
771
5
Evgeniy написал(а):
Try4W написал(а):
Evgeniy написал(а):
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
Может быть у программиста из этой группы чего-нибудь спросишь: Тыкс
Спасибо, отписал ему.

Неужели анти ничего об этом не знает ?)
Может просто Анти никогда и не пытался это узнать? )
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
1. Знаю, пытался.
2. Как же вы все задрали c вашим "Неужели anti344 ничего не знает" и этот уродский знак вопроса со скобкой.
3. Если кто не заметил, то я (ВАШУ ЖЕ НАЛЕВО) указал своё мнение по этому поводу, что 1 - могло бы вам подсказать ПОИСКАТЬ ТО, О ЧЕМ Я ГОВОРИЛ, ну и еще осознать, что где-то там недалеко тоже пробегал, и что это не повод писать грёбанные вопросики со скобкой.
 
905
5
Анти, это стандартный способ пилить камеру. Мне было некоторых лень искать и грузить Эклипс.
Evgeniy написал(а):
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
Да. Рендер экрана идет в updateCameraAndRender(а рендер мира без гуя - в renderWorld), как я понял. Теперь надо найти способ отрысовывать это на своем рендере. И поставить защиту от просмотра экрана камерой не забудь.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Подвигать glTranslated, glRotated и glScaled, потом обрезать по рамке используя glStencilBits(как он работает без понятия).
 
1,990
18
105
Чтобы отрендерить другую часть мира на какой-нибудь модельке или ещё где-либо, не напрямую на экране - придется изначально всё рисовать в текстуру.
Т.е. шаги такие (перед основным рендером!):
1. Включаем glFrameBuffer, при этом не забыв его сгенерировать и инициализиовать
2. Рендерим весь мир, переставив камеру в нужное место с помощью glTranslate\glRotate и прочего.
3. Выключаем буфер, чистим его, чистим холст.
4. Рисуем обычный мир.
5. Когда доходит до нашей модельки - вытягиваем нашу текстуру framebuffer'а, куда мы рисовали перед основным рендером, рисуем её на нужных полигонах (разделив текстурные координаты на треугольники)
6. ???
7. PROFIT

Короче: без изменения исходников не сделать. Никак. Forge не задумывался для шейдеров\render-буферов, stencil-буферов и т.д.

P.S. Стенсил буфер здесь использовать бесполезно - он обрежет текстуру, но не сможет натянуть её на нужную модель.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
Ну учитывая, что фордж никакого отношения к GL11 не имеет, то, скорее всего, описанные тобою действия вполне выполнимы и без редактирования исходников. Если же под словом Forge ты имел ввиду Minecraft, то тут поспорить сложнее, но все-же можно накопать хитрости, достаточные для этого.
 
1,990
18
105
Да, LWJGL вообще отдельно можно использовать, это лютый плюс.
Но дело в другом, надо достать событие, которое запускается перед рендером всего мира, но после апдейта. Не уверен, есть ли такое в фордж. Если есть - можно. По сути, только оно и требуется.
Обновить текстуру можно в модельке, прям перед рендером.
Похоже я погорячился с выводами насчет Forge.
Ах да, ещё событие ресайза окна нужно, чтобы там переинициализацию буфера делать.
 

necauqua

когда-то был anti344
Администратор
1,216
27
172
По моему даже где-то такое есть. Событие.
 
127
0
Oldestkon написал(а):
Чтобы отрендерить другую часть мира на какой-нибудь модельке или ещё где-либо, не напрямую на экране - придется изначально всё рисовать в текстуру.
Т.е. шаги такие (перед основным рендером!):
1. Включаем glFrameBuffer, при этом не забыв его сгенерировать и инициализиовать
2. Рендерим весь мир, переставив камеру в нужное место с помощью glTranslate\glRotate и прочего.
3. Выключаем буфер, чистим его, чистим холст.
4. Рисуем обычный мир.
5. Когда доходит до нашей модельки - вытягиваем нашу текстуру framebuffer'а, куда мы рисовали перед основным рендером, рисуем её на нужных полигонах (разделив текстурные координаты на треугольники)
6. ???
7. PROFIT

Короче: без изменения исходников не сделать. Никак. Forge не задумывался для шейдеров\render-буферов, stencil-буферов и т.д.

P.S. Стенсил буфер здесь использовать бесполезно - он обрежет текстуру, но не сможет натянуть её на нужную модель.
То есть, я понял, что нужно создать рендер, а затем выполнить алгоритм, представленный Oldestkon(который уже написан в EntityRenderer) ? 

laz2727, как понимать просмотр экрана камерой ? =\

P.s. Смотрю я на ваши рассуждения и понимаю, как убоги мои познания явы
 
127
0
Try4W написал(а):
Evgeniy написал(а):
laz2727 написал(а):
Сначала найди, где игрок вообще рендерит экран. Перепили так, что это отрисовывается в другом месте. Создавай игрока без модели, но с измененным рендером экрана перед камерой. Не так и сложно.
Знал бы я как выглядит код ренера экрана, нашел бы. А так есть подозрения на EntityRenderer, там много методов с переменными дистанции, зума камеры в отношении игрока. Верны мои догадки ?
Может быть у программиста из этой группы чего-нибудь спросишь: Тыкс
Довольно грубый человек. Сказал, что ничего мне не даст даже за деньги и даже на просьбу тыкнуть носом ответил: "Нет"...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху