From 1807e7752960ac229cddd34b100e92cadbac9459 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Wed, 26 Jun 2019 21:39:11 -0400 Subject: [PATCH] Fix perfo Venice (shadow). --- CameraPane.java | 104 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 80 insertions(+), 24 deletions(-) diff --git a/CameraPane.java b/CameraPane.java index 76ad7dc..88a2741 100644 --- a/CameraPane.java +++ b/CameraPane.java @@ -326,7 +326,7 @@ cStatic.objectstack[materialdepth++] = obj; //System.out.println("material " + material); //Applet3D.tracein(this, selected); - display.vector2buffer = obj.projectedVertices; + //display.vector2buffer = obj.projectedVertices; if (obj instanceof Camera) { display.options1[0] = material.shift; @@ -335,14 +335,28 @@ display.options1[2] = material.shadowbias; display.options1[3] = material.aniso; display.options1[4] = material.anisoV; +// System.out.println("display.options1[0] " + display.options1[0]); +// System.out.println("display.options1[1] " + display.options1[1]); +// System.out.println("display.options1[2] " + display.options1[2]); +// System.out.println("display.options1[3] " + display.options1[3]); +// System.out.println("display.options1[4] " + display.options1[4]); display.options2[0] = material.opacity; display.options2[1] = material.diffuse; display.options2[2] = material.factor; +// System.out.println("display.options2[0] " + display.options2[0]); +// System.out.println("display.options2[1] " + display.options2[1]); +// System.out.println("display.options2[2] " + display.options2[2]); cColor.HSBtoRGB(material.color, material.modulation, 1, display.options3); +// System.out.println("display.options3[0] " + display.options3[0]); +// System.out.println("display.options3[1] " + display.options3[1]); +// System.out.println("display.options3[2] " + display.options3[2]); display.options4[0] = material.cameralight/0.2f; display.options4[1] = material.subsurface; display.options4[2] = material.sheen; +// System.out.println("display.options4[0] " + display.options4[0]); +// System.out.println("display.options4[1] " + display.options4[1]); +// System.out.println("display.options4[2] " + display.options4[2]); // if (display.CURRENTANTIALIAS > 0) // display.options3[3] /= 4; @@ -358,7 +372,7 @@ /**/ } else { - DrawMaterial(material, selected); + DrawMaterial(material, selected, obj.projectedVertices); } } else { @@ -382,8 +396,8 @@ cStatic.objectstack[materialdepth++] = obj; //System.out.println("material " + material); //Applet3D.tracein("selected ", selected); - display.vector2buffer = obj.projectedVertices; - display.DrawMaterial(material, selected); + //display.vector2buffer = obj.projectedVertices; + display.DrawMaterial(material, selected, obj.projectedVertices); } } @@ -400,8 +414,8 @@ materialdepth -= 1; if (materialdepth > 0) { - display.vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; - display.DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1]); + //display.vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; + display.DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1], cStatic.objectstack[materialdepth - 1].projectedVertices); } //Applet3D.traceout("selected ", (stackdepth>0)?selectedstack[stackdepth-1]:"???"); } else if (selected && CameraPane.flash && obj.GetMaterial() != null) @@ -421,8 +435,8 @@ materialdepth -= 1; if (materialdepth > 0) { - display.vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; - display.DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1]); + //display.vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; + display.DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1], cStatic.objectstack[materialdepth - 1].projectedVertices); } //Applet3D.traceout("selected ", (stackdepth>0)?selectedstack[stackdepth-1]:"???"); //else @@ -1610,7 +1624,7 @@ // gl.glMaterialfv(gl.GL_BACK, gl.GL_DIFFUSE, colorV, 0); } - void DrawMaterial(cMaterial material, boolean selected) + void DrawMaterial(cMaterial material, boolean selected, Object3D.cVector2[] others) { CameraPane display = this; //new Exception().printStackTrace(); @@ -1645,7 +1659,7 @@ colorV[0] = display.modelParams0[0] * material.diffuse; colorV[1] = display.modelParams0[1] * material.diffuse; colorV[2] = display.modelParams0[2] * material.diffuse; - colorV[3] = material.opacity; + colorV[3] = 1; // material.opacity; gl.glColor4f(colorV[0], colorV[1], colorV[2], material.opacity); //System.out.println("Opacity = " + opacity); @@ -1753,9 +1767,9 @@ display.modelParams7[2] = 0; display.modelParams7[3] = 0; - display.modelParams6[0] = 100; // criss de bug de bump + //display.modelParams6[0] = 100; // criss de bug de bump - Object3D.cVector2[] extparams = display.vector2buffer; + Object3D.cVector2[] extparams = others; // display.vector2buffer; if (extparams != null && extparams.length > 0 && extparams[0] != null) { display.modelParams6[0] = extparams[0].x / 1000.0f; // bump @@ -9366,11 +9380,35 @@ jy8[3] = 0.5f; } - float[] options1 = new float[]{1000, 0.00001f, 20, 0, 0}; // focus, aperture, Shadow blur, aniso, anisoV + float[] options1 = new float[]{100, 0.00001f, 20, 0, 0}; // focus, aperture, Shadow blur, aniso, anisoV float[] options2 = new float[]{0, 1, 0, 0}; // fog density, intensity, elevation float[] options3 = new float[]{1, 1, 1, 0}; // fog color float[] options4 = new float[]{1, 0, 1, 0}; // image intensity, subsurface, lightsheen + void ResetOptions() + { + options1[0] = 100; + options1[1] = 0.025f; + options1[2] = 0.01f; + options1[3] = 0; + options1[4] = 0; + + options2[0] = 0; + options2[1] = 0.75f; + options2[2] = 0; + options2[3] = 0; + + options3[0] = 1; + options3[1] = 1; + options3[2] = 1; + options3[3] = 0; + + options4[0] = 1; + options4[1] = 0; + options4[2] = 1; + options4[3] = 0; + } + static int imagecount = 0; // movie generation static int jitter = 0; @@ -10481,6 +10519,7 @@ ANTIALIAS = 0; //System.out.println("RESTART"); AAtimer.restart(); + Globals.TIMERRUNNING = true; } } } @@ -10548,7 +10587,8 @@ ambientOcclusion = false; } - if (Globals.lighttouched && DrawMode() == DEFAULT) // && !lightMode) // && !FROZEN) + if (//Globals.lighttouched && + DrawMode() == DEFAULT) // && !lightMode) // && !FROZEN) { //if (RENDERSHADOW) // ? if (!IsFrozen()) @@ -11458,7 +11498,7 @@ static boolean zoomonce = false; - void CreateSelectedPoint() + static void CreateSelectedPoint() { if (selectedpoint == null) { @@ -11478,6 +11518,9 @@ void DrawObject(GL gl, boolean draw) { + // To clear camera values + ResetOptions(); + //System.out.println("DRAW OBJECT " + mouseDown); // DrawMode() = SELECTION; //GL gl = getGL(); @@ -12045,7 +12088,7 @@ for (int i = tp.size(); --i >= 0;) { //for (int count = tp.get(i).GetTransformCount(); --count>=0;) - LA.xformPos(light, tp.get(i).GlobalTransform(), light); + LA.xformPos(light, tp.get(i).GlobalTransformInv(), light); } @@ -13315,7 +13358,8 @@ /*static*/ float[] modelParams5 = new float[]{0, 0, 0, 0}; // texture, opacity, fakedepth, shadowbias /*static*/ float[] modelParams6 = new float[]{0, 0, 0, 0}; // bump, noise, borderfade, fog punchthrough /*static*/ float[] modelParams7 = new float[]{0, 0, 0, 0}; // noise power, opacity power - Object3D.cVector2[] vector2buffer; + + //Object3D.cVector2[] vector2buffer; // IN : ndotl, ndoth, xxx, NdotL //, snininess, lightarea // OUT : diff, spec @@ -13838,6 +13882,7 @@ else if (evt.getSource() == AAtimer) { + Globals.TIMERRUNNING = false; if (mouseDown) { //new Exception().printStackTrace(); @@ -13912,6 +13957,7 @@ return; AAtimer.restart(); // + Globals.TIMERRUNNING = true; // waslive = LIVE; // LIVE = false; @@ -14375,7 +14421,8 @@ info.camera = renderCamera; info.x = x; info.y = y; - object.editWindow.copy.doEditDrag(info, (modifiers & MouseEvent.BUTTON3_MASK) != 0); + object.GetWindow().copy + .doEditDrag(info, (modifiers & MouseEvent.BUTTON3_MASK) != 0); } else { if (x < startX) @@ -14539,7 +14586,9 @@ ci.camera = renderCamera; if (!isRenderer) { - if (object.editWindow.copy.doEditClick(ci, 0)) + //ObjEditor editWindow = object.editWindow; + //Object3D copy = editWindow.copy; + if (object.doEditClick(ci, 0)) { setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } else @@ -15373,7 +15422,7 @@ } */ - object.editWindow.EditSelection(); + object.editWindow.EditSelection(false); } void SelectParent() @@ -16385,16 +16434,16 @@ cStatic.objectstack[materialdepth++] = checker; //System.out.println("material " + material); //Applet3D.tracein(this, selected); - vector2buffer = checker.projectedVertices; + //vector2buffer = checker.projectedVertices; //checker.GetMaterial().Draw(this, false); // true); - DrawMaterial(checker.GetMaterial(), false); // true); + DrawMaterial(checker.GetMaterial(), false, checker.projectedVertices); // true); materialdepth -= 1; if (materialdepth > 0) { - vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; - DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1]); + //vector2buffer = cStatic.objectstack[materialdepth - 1].projectedVertices; + DrawMaterial(materialstack[materialdepth - 1], selectedstack[materialdepth - 1], cStatic.objectstack[materialdepth - 1].projectedVertices); } //checker.GetMaterial().opacity = 1f; ////checker.GetMaterial().ambient = 1f; @@ -16618,6 +16667,8 @@ // System.err.println("view = " + view[8] + " " + view[9] + " " + view[10] + " " + view[11]); // System.err.println("view = " + view[12] + " " + view[13] + " " + view[14] + " " + view[15]); + CreateSelectedPoint(); + // Will fit the mesh !!! selectedpoint.toParent[0][0] = 0.0001; selectedpoint.toParent[1][1] = 0.0001; @@ -16732,6 +16783,11 @@ //System.out.println("objects[color] = " + objects[color]); //objects[color].Select(); indexcount = 0; + ObjEditor window = object.GetWindow(); + if (window != null && deselect) + { + window.Select(null, deselect, true); + } object.Select(color, deselect); } -- Gitblit v1.6.2