Доброго всем времени суток! В моём проекте основная сцена достаточно не маленькая (террейн 2500 на 2500 км с большим количеством объектов). Что бы разгрузить сцену, на каждом объекте, будь то камушек или здание висит LOD group, но недавно натолкнулся на видео презентацию геймплея третьего ведьмака (с E3) и меня заинтересовало, как это сделано у них. http://www.youtube.com/watch?v=rPm3NXWcEec
Отображение объектов происходит только в том случае, если их видит камера. Не просто направлена в их сторону, а именно видит.
Мне кажется такая система более чем правильная и логичная, но пока я не представляю, как это можно реализовать. Буду думать, так или иначе, если что-то придумаю сам, поделюсь результатом, но если кто-то даст совет или пинка в нужном направлении, буду чрезвычайно благодарен.
Сообщение отредактировал NapalmRain - Пн, 30 Июн 2014, 10:28
А ведь, что самое странное, я о нём слышал, и даже читал различные статьи. Но на тот момент этот вопрос был не актуален, и я благополучно об этом забыл... Премного благодарен за пинок. Буду вновь вникать. Но теперь возник такого плана вопрос, скажем, так, похожий на основной, но с возможностью применения в других сферах: а можно ли, как-то узнать, видит камера объект или нет? мануал по камерам в принципе весь перечитал, ничего похожего не нашёл. Но я, судя по всему, с поисковиками на длинной ноге, так что может быть и просто плохо ищу...
можно ли, как-то узнать, видит камера объект или нет?
Ну первое. Оклюжн кулинг нормальные движки реализуют на видеокарте. Современные видеокарты могут это делать аппаратно. Так что на процессоре это узнавать не надо. Но если нужно для других вещей - чем Вам не подходит Physics.Raycast?
Вот это было первое, что пришло в голову, но как именно реализовать это, не смог себе представить.
Стрелять из каждого предмета в сторону камеры и проверять на препятствия... не самый продуктивный вариант. Ровно так же как стрелять множеством лучей из камеры во все стороны... Это не столько какая-то конкретная задача, сколько просто мысль. В голове родилось несколько идей, которые можно было бы реализовать именно по этому принципу, знать, виден тот или иной предмет на экране или нет...
Не для оптимизации, а именно для геймплейных вопросов.
а в чем смысл ? Камера и так отсекает из рендера все что не в кадре...
В чём смысл проверки, видно ли объект или в чём смысл использовать occlusion culling? Если первое, то это не для отсечения, а наоборот. Скорее просто для применения в геймплейной части.
occlusion culling и Renderer.isVisible - это совершенно разные вещи... Если для геймПлея то тогда понятно, а иначе нет никакого смысла дублировать то что камера и так сама делает. X.cor.R (Prologue)
occlusion culling и Renderer.isVisible - это совершенно разные вещи... Если для геймПлея то тогда понятно, а иначе нет никакого смысла дублировать то что камера и так сама делает.
Я понимаю. Я ж не совсем потерянный для общества индивид.)
Ну например по Renderer.OnBecameInvisible() можно отключать сложные скрипты, чтобы не потребляли ресурсы, по Renderer.OnBecameVisible() их обратно включать.