Я создаю 3D-сцену в настоящее время коробку и прямоугольник и пытаясь включить освещение.Libgdx 3D - Point Light показывает черный ящик & rect (PointLight не работает)
Когда я создаю PointLight и добавляю его в среду, все превращается в черный цвет?
все, что я хочу сделать, это создать сцену в 3D и включить точечный свет, как солнце или лучи, исходящие из точки и затеняющие объекты.
Код:
environment = new Environment();
environment.add(new PointLight().set(1f, 1f, 1f, 0, 0, 20f, 100f));
modelBatch=new ModelBatch();
..
square=new ModelBuilder().createBox(300,300,300,new Material(ColorAttribute.createDiffuse(Color.GREEN)),
VertexAttributes.Usage.Position | VertexAttributes.Usage.Normal);
squareinst=new ModelInstance(square);
squareinst.transform.setTranslation(-500,0,0);
-
sprites.get(0).setRotationY(sprites.get(0).getRotationY() + 1f);
sprites.get(1).setRotationY(sprites.get(1).getRotationY() - 1f);
squareinst.transform.rotate(1,0,0,1);
modelBatch.begin(camera);
for(Sprite3D sp:sprites)// has 3d rect models
sp.draw(modelBatch,environment);
modelBatch.render(squareinst,environment);
modelBatch.end();
PointLight поворачивая все черное
W ез использование окружающей среды или огней
согласно моему исследованию, вот если PointLight не работает, то все должно быть черным, как в настоящее время, потому что окружающая среда нуждается в свете, он отлично работает с направленным светом (только противоположная сторона из прямоугольника черная даже после поворотов, я не знаю, почему)
libgdx версии 1.6.1 - Android студия я проверил это на оба андроида устройства и рабочего столе
пожалуйста, мне действительно нужно, чтобы получить эту работу PointLight, я не» t знать, если он примет пользовательский шейдер, если это так, пожалуйста, направляйте меня на некоторые ссылки, потому что я не испытываю в шейдерах. Я также читал о том, что PointLight не работает на каком-либо устройстве или не работает в opengl 2.0, но я не уверен.
Я пробовал много вещей и ценностей. Я знаю об Ambient Light, но это бесполезно для моего дела. Направленный свет также имеет ограниченное использование (может использоваться как резерв, если это не работает).
Edit:
Сво работает в настоящее время, проверьте ответ ниже:
- если вы используете большой размер камеры или большой размер модели, пожалуйста, попробуйте добавляя больше нулей интенсивности PointLight до свет виден.
Ваши устройства слишком велики для этой интенсивности света. Используйте единицы измерения вокруг 1 вместо 300 и 500. – Xoppa
Здравствуйте, @Xoppa, я тоже пробовал все эти значения и светлые позиции, я начал использовать диапазон 0-1f, тогда я использовал 100f, потому что он был написан в тестах libgdx, и даже попытался изменить эти значения перед публикацией этого комментария, но все тот же результат. – Diljeet
Пожалуйста, обратитесь к тесту, который предполагает, что он может быть исправлен. Возможно, начните с чего-то, что действительно работает и изменит его для ваших нужд. https://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/g3d/LightsTest.java. – Xoppa