Я хочу создать PhongMaterial с равномерным свечением. В результате у меня есть маленькая модель Земли, и я хотел бы окружить ее дешевой имитацией сияния. https://i1.wp.com/trendintech.com/wp-content/uploads/2017/07/Screen-Shot-2017-07-09-at-12.06.23.png?fit=1079%2C742. Вспышки не нужны и не желательны, я просто хочу, чтобы вокруг нее была бледно-зеленая сфера.
Способ, которым я думал бы сделать это белым, - это просто
public static Sphere buildGlowingSphere(double radius) {
String glowingFilename = "white_square_400x400.jpg";
Image glowingMap = new Image(new File(glowingFilename).toURI().toString());
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.rgb(255, 255, 255, 0.01));
material.setSpecularColor(Color.rgb(255, 255, 255, 0.01));
material.setSelfIlluminationMap(glowingMap);
Sphere sphere = new Sphere(radius);
sphere.setMaterial(material);
return sphere;
}
Однако это просто создает непрозрачную белую сферу. Что мне нужно, чтобы сделать его прозрачным и достаточно тонким?
Пока мы занимаемся этим, мне бы не хотелось получать новое изображение для каждого цвета, который я хотел бы создать. Я хотел бы сделать что-то вроде
public static Sphere buildGlowingSphere2(double radius, Color color) {
Image glowingMap = generateBlankImage(color);
PhongMaterial material = new PhongMaterial();
material.setDiffuseColor(Color.rgb(255, 255, 255, 0.01));
material.setSpecularColor(Color.rgb(255, 255, 255, 0.01));
material.setSelfIlluminationMap(glowingMap);
Sphere sphere = new Sphere(radius);
sphere.setMaterial(material);
return sphere;
}
Как мне это сделать? Или иначе сделать материал, который равномерно самосветится?
Я также пытался сделать это, просто используя неосвещенную прозрачную сферу, и это выглядит хорошо, но у нее нет яркой конечности, которую вы получаете в этом образ; это просто похоже на плоский круг, покрывающий Землю. Я предположил, что это будет потому, что в реальной жизни этот материал светится. Но если есть другой или лучший способ добиться того же эффекта, я весь слух.