Java 3D: невозможно получить Shape3d, чтобы затронуть огни

StackOverflow https://stackoverflow.com/questions/2245253

  •  20-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить обычай Shape3D подвергаться воздействию DirectedLight В Java 3D, но ничего, что я делаю, кажется, не работает.

Форма имеет геометрию, которая IndexedQuadArray, с нормальным набором и применением флага, обеспечение применения нормальных векторов к правильным вершинам - с использованием индексированных векторов

Я дал внешнему виду материал (как с указанными цветами, так и без блеска, и без)
Я также положил свет на то же самое BranchGroup как форма, но она все еще не работает.

На самом деле, когда я добавляю в нормали в форму, объект, кажется, исчезает - без них, он плоский затенен, так что все лица - один и тот же оттенок.

Я могу только думать, что я забыл включить что -то смехотворно простое или сделал что -то не так.

Чтобы проверить свет, на самом деле, я положил Sphere Помимо формы, и сфера была затронута и зажжена правильно, но форма все еще не была. Оба были на одном BranchGroup

Небольшая странность тоже - если я переведу сферу, она исчезает, если я перемещаю ее больше 31 в любом направлении ... [Мой взгляд установлен около 700 назад, так как я имею дело с объектами размера до 600 в ширину


РЕДАКТИРОВАТЬ: Найдите это в официальных учебниках, которые, вероятно, связаны

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

Это было полезно?

Решение

Огни setInfluencingBounds() не был установлен правильно, так что формы на сцене не были включены в границы.

Это было исправлено путем установки BoundingBox охватить всю область и присвоить ее в влиятельные границы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top