2016-04-13 2 views
0

Я ищу, чтобы создать 3D-символ, используя Three.js, с символом, имеющим разные грани для разных текстур, а также с разными предметами (например, с мечом или кинжалом).Three.js - Отображение/Скрытие части объекта

Можно ли использовать один 3D-объект и показать/скрыть разные части этого объекта, используя three.js? Например, у объекта могут быть кинжал и меч, но пользователь видит только кинжал в одном сценарии или меч в другом сценарии?

Или мне нужно будет использовать разные 3D-объекты и загрузить их все в один холст?

Заранее благодарен!

ответ

0

создавать пользовательские шейдер и добавить пользовательский атрибут для вашей геометрии - каждая вершина будет иметь атрибут, с которым вы можете скрыть (сброшенный) каждый фрагмент он создает

есть полный пример здесь

http://threejs.org/examples/#webgl_buffergeometry_selective_draw

+0

Извините за мою наивность, но это только для пользовательских рисованных геометрических фигур, или же это относится к файлам 3D-объектов тоже (например, файлы .obj). –

+0

, когда вы загружаете файл, он создает геометрию - добавляет к нему специальный атрибут, материал должен быть также настраиваемым (скопируйте тот, который он создает, и добавьте код отбрасывания в фрагментарный шейдер и передайте код для атрибута в шейдер вершин), тогда у вас есть знать, какие вершины представляют кинжал и т. д., и переключать их, пример - минимальный минимум, так что это легко понять. –

+0

Отлично, большое спасибо за объяснение. –

Смежные вопросы