.. | .. |
---|
9367 | 9367 | boolean pointselection = false; |
---|
9368 | 9368 | ///*static*/ boolean lighttouched = true; |
---|
9369 | 9369 | boolean deselect; |
---|
9370 | | - private boolean ambientOcclusion = false; |
---|
| 9370 | + |
---|
| 9371 | + static boolean ambientOcclusion = false; |
---|
| 9372 | + |
---|
9371 | 9373 | static boolean flash = false; |
---|
9372 | 9374 | /*static*/ boolean wait = false; |
---|
9373 | 9375 | boolean displaydone = false; // after repaint() calls |
---|
.. | .. |
---|
11260 | 11262 | //gl.glEnable(gl.GL_ALPHA_TEST); |
---|
11261 | 11263 | //gl.glActiveTexture(GL.GL_TEXTURE0); |
---|
11262 | 11264 | |
---|
11263 | | - if (!IsFrozen() && !ambientOcclusion) |
---|
| 11265 | + if (!IsFrozen()) // && !ambientOcclusion) |
---|
11264 | 11266 | { |
---|
11265 | 11267 | DrawSkyBox(gl, (float)ratio); |
---|
11266 | 11268 | } |
---|
.. | .. |
---|
18046 | 18048 | |
---|
18047 | 18049 | gl.glReadPixels(0, 0, OCCLUSION_SIZE, OCCLUSION_SIZE, GL.GL_BGRA, GL.GL_UNSIGNED_INT_8_8_8_8_REV, occlusioncolorbuffer); |
---|
18048 | 18050 | |
---|
18049 | | - int[] pixels = selectsizebuffer.array(); |
---|
| 18051 | + int[] pixels = occlusioncolorbuffer.array(); |
---|
18050 | 18052 | |
---|
18051 | 18053 | // BufferedImage rendImage = new BufferedImage(OCCLUSION_SIZE, OCCLUSION_SIZE, BufferedImage.TYPE_INT_RGB); |
---|
18052 | 18054 | // rendImage.setRGB(0,0, OCCLUSION_SIZE,OCCLUSION_SIZE, pixels, OCCLUSION_SIZE*(OCCLUSION_SIZE-1),-OCCLUSION_SIZE); |
---|
.. | .. |
---|
18065 | 18067 | |
---|
18066 | 18068 | double FACTOR = 1; |
---|
18067 | 18069 | |
---|
| 18070 | + float minvalue = 1; |
---|
| 18071 | + float maxvalue = 0; |
---|
| 18072 | + |
---|
18068 | 18073 | for (int i = 0; i < depths.length; i++) |
---|
18069 | 18074 | { |
---|
18070 | 18075 | int x = i / OCCLUSION_SIZE - OCCLUSION_SIZE / 2; |
---|
.. | .. |
---|
18148 | 18153 | |
---|
18149 | 18154 | double scale = ray.z; // 1; // cos |
---|
18150 | 18155 | |
---|
| 18156 | + int pixel = pixels[newindex]; |
---|
| 18157 | + |
---|
| 18158 | + float value = (pixel&255) / 255.0f; |
---|
| 18159 | + |
---|
| 18160 | + pixel >>= 8; |
---|
| 18161 | + |
---|
| 18162 | + value += (pixel&255) / 255.0f; |
---|
| 18163 | + |
---|
| 18164 | + pixel >>= 8; |
---|
| 18165 | + |
---|
| 18166 | + value += (pixel&255) / 255.0f; |
---|
| 18167 | + |
---|
| 18168 | + value /= 3; |
---|
| 18169 | + |
---|
| 18170 | + if (minvalue > value) |
---|
| 18171 | + minvalue = value; |
---|
| 18172 | + if (maxvalue < value) |
---|
| 18173 | + maxvalue = value; |
---|
| 18174 | + |
---|
| 18175 | + //scale *= value; |
---|
| 18176 | + |
---|
18151 | 18177 | float depth = depths[newindex]; |
---|
18152 | 18178 | |
---|
18153 | 18179 | /* |
---|
.. | .. |
---|
18184 | 18210 | double z_eye = tempmat2[3*4 + 2] / (depth * -2.0 + 1.0 - tempmat2[2*4 + 2]); |
---|
18185 | 18211 | |
---|
18186 | 18212 | double factor = 1 - Math.exp(-z_eye * z_eye / FACTOR); |
---|
| 18213 | + |
---|
| 18214 | + factor *= value; |
---|
18187 | 18215 | |
---|
18188 | 18216 | r += factor * scale; |
---|
18189 | 18217 | g += factor * scale; |
---|
.. | .. |
---|
18227 | 18255 | |
---|
18228 | 18256 | stackdepth--; |
---|
18229 | 18257 | |
---|
| 18258 | +// System.err.println("minvalue = " + minvalue); |
---|
| 18259 | +// System.err.println("maxvalue = " + maxvalue); |
---|
18230 | 18260 | //System.err.println("depth = " + stackdepth); |
---|
18231 | 18261 | // DEBUG |
---|
18232 | 18262 | /* |
---|