Недавно я пытался научиться использовать подсветку Box2D.Я попытался реализовать их в одной из моих простых игр.Все работало и выглядело хорошо (на ПК), пока я не запустил его на своем телефоне.Огни выглядят совершенно иначе, и я даже не знаю, как это описать.Вместо хороших и плавных световых эффектов похоже, что я двигаюсь через какую-то слизь.Еще одна вещь, которую я заметил, это то, что когда я пытаюсь записать его с помощью OBS, он выглядит так же, как на моем телефоне.Я попробовал это на телефоне моего брата, и, к моему удивлению, он выглядит точно так же, как на моем компьютере.Если кто-то сталкивался с таким поведением или может знать, чем оно может быть вызвано, я был бы признателен даже за то, как его назвать.Изменение количества лучей, похоже, мало что дает.Я тоже пытался записать это на телефон брата, но он ведет себя так же, как запись на ПК.
Мой телефон (Xiaomi mi mix 3)
Телефон моего брата (Huawei P10 lite)
Как это выглядит на моем телефоне: https://youtu.be/fq_J6A95D2Y
Вот экран того, как это выглядит на ПК, "OutLines" света все еще видны, но гораздо меньше: https://imgur.com/a/D6UHUVp
Вот код, связанный со светом:
`RayHandler.useDiffuseLight(true);
rayHandler = new RayHandler(world);
rayHandler.setAmbientLight(0.1f,0.1f,0.1f,0.2f);
rayHandler.setCulling(true);`
Без useDiffuseLight это выглядит еще хуже.Отбраковка, по-видимому, не связана с моей проблемой.
lightArray = new Array<>();
int rays = 2048;
int distance = 8;
Color color = new Color(0.5f,0.5f,0.5f,1);
PointLight light1 = new PointLight(context.getRayHandler(),rays,color,distance,3,3);
PointLight light2 = new PointLight(context.getRayHandler(),rays,color,distance,3,13);
PointLight light3 = new PointLight(context.getRayHandler(),rays,color,distance,6,3);
PointLight light4 = new PointLight(context.getRayHandler(),rays,color,distance,6,13);
lightArray.add(light1);
lightArray.add(light2);
lightArray.add(light3);
lightArray.add(light4);
for(Light light:lightArray){
light.setSoftnessLength(1);
light.setSoft(true);
}
Количество лучей, похоже, не меняет ничего, связанного с моей проблемой.(Я пробовал это с 64,128,1024,4096 и «Линии Out все еще выглядят одинаково»).Отключение мягкости ничего не меняет, связанное с моей проблемой.
playerLight = new PointLight(context.getRayHandler(),2048,new
Color(0.4f,0.4f,0.4f,1f),5,playerBody.getPosition().x,playerBody.getPosition().y);
playerLight.attachToBody(playerBody);
rayHandler.setCombinedMatrix(context.getCamera());
rayHandler.updateAndRender();
Это вызывается после того, как shapeRenderer и SpriteBatch нарисовали все.