forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Уроки (http://forum.boolean.name/forumdisplay.php?f=145)
-   -   Рендерим оружие (First Persom Shooter) (http://forum.boolean.name/showthread.php?t=13810)

Nuprahtor 01.12.2010 22:45

Рендерим оружие (First Persom Shooter)
 
Можно заметить, что если просто прикрепить модель оружия к камере, то эта модель будет входить в другие модели (clipping), что очень портит картинку. Чтобы этого избежать, нужно создать слой для отрисовки hud`а оружия (заходим Edit -> Project Settings -> Tags)
Назовем его fps_weapon
Всем моделям оружия назначаем этот слой
Затем копируем основную камеру, называем ее fps_camera (ее координаты должны совпадать с основной), меняем ее depth на 1 (в основной камере параметр depth равен 0)
Параметр fps_camera Clear Flags - Depth Only
В Culling Mask fps_camera нужно оставить тот слой, на котором находятся все модели оружия (в нашем случае это fps_weapon)

Теперь оружие будет рендерится отдельной камерой и оно никогда не будет заходить в другие модели :)

pax 01.12.2010 23:19

Ответ: Рендерим оружие (First Persom Shooter)
 
Тема перемещена в подраздел "FAQ и уроки". Думаю ей место здесь.

UPD Я бы еще посоветовал вторую камеру прикрепить к основной.


Есть еще способ - коррекция шейдера оружия, в котором надо указать очередь прорисовки после всей геометрии и прозрачных тел и отключить DepthTest.

Zer0n 02.12.2010 08:55

Ответ: Рендерим оружие (First Persom Shooter)
 
А вот я юзал вместо тегов Layer'ы :)

Randomize 02.12.2010 09:10

Ответ: Рендерим оружие (First Persom Shooter)
 
Зачем вторую камеру? Какие слои? В юнити что нельзя задать приоритет рендера для определённого объекта?

Zer0n 02.12.2010 09:26

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Randomize (Сообщение 170565)
Зачем вторую камеру? Какие слои? В юнити что нельзя задать приоритет рендера для определённого объекта?

Может на низком уровне и можно. А так - это единственный простой способ. Есть еще способ сдвижения камеры ГГ назад, его практикует Левша с Unity3D.ru - меньше дравколов. Но с ним бывают глюки.. Этот лучше.. :cool:

Randomize 02.12.2010 09:31

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Nuprahtor (Сообщение 170520)
Теперь оружие будет рендерится отдельной камерой и оно никогда не будет заходить в другие модели :)

Я всё правильно понял? То есть источники света не будут взаимодействовать с оружием?

viper86 02.12.2010 11:05

Ответ: Рендерим оружие (First Persom Shooter)
 
Моё мнение, что нужно просто обабатывать поведение оружия и перса, например, когда подходит близко к стене - поднимает оружие. А то получиться, что оружие прошло сквозь забор, а игрок этого даже не заметит.

Zer0n 02.12.2010 11:53

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от viper86 (Сообщение 170571)
Моё мнение, что нужно просто обабатывать поведение оружия и перса, например, когда подходит близко к стене - поднимает оружие. А то получиться, что оружие прошло сквозь забор, а игрок этого даже не заметит.

А если игрок носит оччченнннььь длинную снайперскую винтовку? +, нужно делать дополнительные анимы. Или просто повернуть модель?

viper86 02.12.2010 12:11

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Zer0n (Сообщение 170574)
А если игрок носит оччченнннььь длинную снайперскую винтовку? +, нужно делать дополнительные анимы. Или просто повернуть модель?

Дополнительную аниму поднимания оружия сделать несложно. Я лишь предложил свой способ ;). А у противников как ты будешь рендерить второй камерой оружие? А по моему способу, и ты и противники будут реалистично поднимать оружие если ему что-то мешает.

h1dd3n 02.12.2010 12:14

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Randomize (Сообщение 170565)
Зачем вторую камеру? Какие слои? В юнити что нельзя задать приоритет рендера для определённого объекта?

Цитата:

Сообщение от pax
Есть еще способ - коррекция шейдера оружия, в котором надо указать очередь прорисовки после всей геометрии и прозрачных тел и отключить DepthTest.

имхо самый правильный способ - шейдером.

Zer0n 02.12.2010 12:31

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от viper86 (Сообщение 170576)
Дополнительную аниму поднимания оружия сделать несложно. Я лишь предложил свой способ ;). А у противников как ты будешь рендерить второй камерой оружие? А по моему способу, и ты и противники будут реалистично поднимать оружие если ему что-то мешает.

Ну, тебе легко. А мой максимум - 3Д квадрат Малевича :-D Я программист >>:(
Цитата:

Сообщение от h1dd3n (Сообщение 170577)
имхо самый правильный способ - шейдером.

Полностью согласен

pax 02.12.2010 13:02

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Zer0n (Сообщение 170563)
А вот я юзал вместо тегов Layer'ы :)

Как бы...
Цитата:

Сообщение от Nuprahtor (Сообщение 170520)
Чтобы этого избежать, нужно создать слой для отрисовки hud`а оружия


Randomize 02.12.2010 13:33

Ответ: Рендерим оружие (First Persom Shooter)
 
2 сцены! На саму игру и оружие в руках. Этож надо! Может вы ещё отвёрткой шнурки зашнуровываете? Без обид, но 2 сцены это слишком.

Zer0n 02.12.2010 13:39

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Randomize (Сообщение 170596)
2 сцены! На саму игру и оружие в руках. Этож надо! Может вы ещё отвёрткой шнурки зашнуровываете? Без обид, но 2 сцены это слишком.

o_O Какие еще 2 сцены? Она одна. Всего лишь моделька оружия - не сцена, считается там же

Randomize 02.12.2010 14:46

Ответ: Рендерим оружие (First Persom Shooter)
 
Цитата:

Сообщение от Zer0n (Сообщение 170597)
o_O Какие еще 2 сцены? Она одна. Всего лишь моделька оружия - не сцена, считается там же

http://forum.boolean.name/showpost.p...20&postcount=1
2 Камеры едрён батон! 2 раза рендерить надо.


Часовой пояс GMT +4, время: 05:05.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot