Я пытаюсь изучить самый эффективный способ сделать самозванец в Unity вручную - без использования готовых решений.
Мое первое предположение состоит в том, что это должно быть достигнуто с помощью RenderTexture и второй камеры, а затем делать разные «снимки» разных углов объекта. Если есть лучшие альтернативы с точки зрения производительности (даже если их сложнее реализовать), я хотел бы услышать о них.
В случае, если это единственный путь, я узнал, как визуализировать с камеры на текстуру с помощью скрипта, но я все еще не мог понять, как сделать следующее, что мне нужно сделать в первую очередь: как визуализировать -текстурировать конкретный объект без фона камеры (то есть с прозрачной остальной текстурой) качественным способом?
Указатели, предложения или, по крайней мере, рекомендации по ссылкам будут отличными.
Заранее спасибо.
Ответы:
Есть множество различных методов самозванцев.
Уровень детализации, вероятно, самый простой, но он имеет два основных недостатка. Заметный «всплывающий» эффект при переключении между моделями низкого и высокого разрешения, решаемый постепенным переходом между LOD. Вторая проблема заключается в том, что для художника гораздо больше работы по созданию LOD для каждой отдельной модели. В GDC говорится об автоматизированном способе генерации LODS - «Автоматизированный уровень детализации для HALO: REACH».
Более простой метод - это рекламный щит, где вы используете только плоский многоугольник, а не сетку с низким разрешением. Этот многоугольник обращен к камере и текстурирован от рендера вашей модели. Этот метод требует наличия нескольких разных видов вашего объекта, очень похоже на то, как враги обречены. Вы можете перенести все ваши виды на атлас текстуры. Современные игры используют такой подход, как Far Cry 3 https://www.youtube.com/watch?v=9P3EI17kHaI
Вы также можете иметь несколько различных статических рекламных щитов и комбинировать их, как в этом едином пакете https://forum.unity3d.com/threads/abi-automatic-3d-billboard-imposters-released.204579/
Но лучший способ (который, я думаю, вам нужен) - это динамическое отображение ваших рекламных щитов, как в этой статье о gamasutra. http://www.gamasutra.com/view/feature/130911/dynamic_2d_imposters_a_simple_.php Впервые это было сделано Jurrassic Park: Trespasser в 1998 году, так что это не новая техника. Посмотрите обзор кода здесь http://fabiensanglard.net/trespasser/index.php Прокрутите вниз до раздела о вейвлетах, чтобы увидеть их самозванцев.
За исключением стандартного подхода LOD, ваш первый шаг, вероятно, будет найти учебник рендеринга текстуры. Ориентация камеры renderTexture должна быть такой же, как у основной камеры, но обрезана вокруг игрового объекта для повышения эффективности. Вам нужно будет изолировать gameObject (ы), которые вы хотите визуализировать, с помощью маски отбраковки. И установите четкие флаги камеры, чтобы получить прозрачный фон. Затем выведите рекламный щит вместо оригинального объекта.
источник