modules/graphics/src/main/java/com/sun/javafx/sg/prism/NGShape3D.java
Print this page
@@ -110,11 +110,11 @@
if (g.getLights() == null || g.getLights()[0] == null) {
// If no lights are in scene apply default light. Default light
// is a single point white point light at camera eye position.
meshView.setAmbientLight(0.0f, 0.0f, 0.0f);
Vec3d cameraPos = g.getCameraNoClone().getPositionInWorld(null);
- meshView.setPointLight(pointLightIdx++,
+ meshView.setPointLight(pointLightIdx++, g.getPixelScaleFactor(),
(float)cameraPos.x,
(float)cameraPos.y,
(float)cameraPos.z,
1.0f, 1.0f, 1.0f, 1.0f);
} else {
@@ -149,11 +149,11 @@
// intensity *= attenuationFactor;
if (lightBase instanceof NGPointLight) {
NGPointLight light = (NGPointLight)lightBase;
if (rL != 0.0f || gL != 0.0f || bL != 0.0f) {
Affine3D lightWT = light.getWorldTransform();
- meshView.setPointLight(pointLightIdx++,
+ meshView.setPointLight(pointLightIdx++, g.getPixelScaleFactor(),
(float)lightWT.getMxt(),
(float)lightWT.getMyt(),
(float)lightWT.getMzt(),
rL, gL, bL, 1.0f);
}
@@ -171,11 +171,11 @@
meshView.setAmbientLight(ambientRed, ambientGreen, ambientBlue);
}
// TODO: 3D Required for D3D implementation of lights, which is limited to 3
while (pointLightIdx < 3) {
// Reset any previously set lights
- meshView.setPointLight(pointLightIdx++, 0, 0, 0, 0, 0, 0, 0);
+ meshView.setPointLight(pointLightIdx++, 0, 0, 0, 0, 0, 0, 0, 0);
}
meshView.render(g);
}