You can subscribe to this list here.
2003 |
Jan
|
Feb
|
Mar
|
Apr
(116) |
May
(220) |
Jun
(52) |
Jul
(30) |
Aug
(35) |
Sep
(24) |
Oct
(49) |
Nov
(44) |
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2004 |
Jan
(21) |
Feb
(30) |
Mar
(9) |
Apr
(44) |
May
(2) |
Jun
|
Jul
(10) |
Aug
(20) |
Sep
(25) |
Oct
(12) |
Nov
(16) |
Dec
(4) |
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
(25) |
Aug
|
Sep
|
Oct
|
Nov
(26) |
Dec
(10) |
2006 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(33) |
2007 |
Jan
(4) |
Feb
(57) |
Mar
(17) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ma...@us...> - 2003-07-25 07:56:38
|
Update of /cvsroot/jrman/drafts/sampleData In directory sc8-pr-cvs1:/tmp/cvs-serv1191/sampleData Modified Files: TextureTest.rib Log Message: Commit test... Index: TextureTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/TextureTest.rib,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** TextureTest.rib 17 Jul 2003 16:35:49 -0000 1.7 --- TextureTest.rib 25 Jul 2003 07:56:33 -0000 1.8 *************** *** 1,4 **** Option "statistics" "endofframe" 1 ! Display "checkerboard.png" "file" "rgb" Format 128 128 1 Projection "orthographic" --- 1,4 ---- Option "statistics" "endofframe" 1 ! Display "checkerboard.png" "file" "rgba" Format 128 128 1 Projection "orthographic" *************** *** 14,18 **** MakeTexture "checkerboard.png" "checkerboard.txr" "periodic" "periodic" "gaussian" 2 2 MakeTexture "mandrill.jpg" "mandrill.txr" "periodic" "periodic" "gaussian" 2 2 ! Format 800 600 1 Display "TextureTest" "framebuffer" "rgba" PixelSamples 4 4 --- 14,18 ---- MakeTexture "checkerboard.png" "checkerboard.txr" "periodic" "periodic" "gaussian" 2 2 MakeTexture "mandrill.jpg" "mandrill.txr" "periodic" "periodic" "gaussian" 2 2 ! Format 2000 1500 1 Display "TextureTest" "framebuffer" "rgba" PixelSamples 4 4 *************** *** 23,27 **** WorldBegin LightSource "ambientlight" 1 "intensity" 1 ! ShadingRate 1 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 --- 23,27 ---- WorldBegin LightSource "ambientlight" 1 "intensity" 1 ! ShadingRate .25 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 |
From: <ma...@us...> - 2003-07-18 08:40:30
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv1247/src/org/jrman/render Modified Files: SimpleMicropolygon.java SamplePoint.java Sample.java Log Message: Another small optimization. Index: SimpleMicropolygon.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/SimpleMicropolygon.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SimpleMicropolygon.java 10 Jul 2003 17:01:39 -0000 1.6 --- SimpleMicropolygon.java 18 Jul 2003 08:40:24 -0000 1.7 *************** *** 81,85 **** private float minZ = Constants.INFINITY; ! public void write(DataOutputStream dos) throws IOException { dos.writeFloat(ax); --- 81,85 ---- private float minZ = Constants.INFINITY; ! public void write(DataOutputStream dos) throws IOException { dos.writeFloat(ax); *************** *** 105,111 **** dos.writeFloat(minZ); } ! public void read(DataInputStream dis) throws IOException { ! ax =dis.readFloat(); ay = dis.readFloat(); az = dis.readFloat(); --- 105,111 ---- dos.writeFloat(minZ); } ! public void read(DataInputStream dis) throws IOException { ! ax = dis.readFloat(); ay = dis.readFloat(); az = dis.readFloat(); *************** *** 194,206 **** Calc.clamp((int) (mpMinY / sampler.getSampleHeight()), 0, sampler.getHeight() - 1); int maxColumn = ! Calc.clamp( ! (int) (mpMaxX / sampler.getSampleWidth()), ! 0, ! sampler.getWidth() - 1); int maxRow = ! Calc.clamp( ! (int) (mpMaxY / sampler.getSampleHeight()), ! 0, ! sampler.getHeight() - 1); for (int row = minRow; row <= maxRow; row++) { for (int col = minColumn; col <= maxColumn; col++) { --- 194,200 ---- Calc.clamp((int) (mpMinY / sampler.getSampleHeight()), 0, sampler.getHeight() - 1); int maxColumn = ! Calc.clamp((int) (mpMaxX / sampler.getSampleWidth()), 0, sampler.getWidth() - 1); int maxRow = ! Calc.clamp((int) (mpMaxY / sampler.getSampleHeight()), 0, sampler.getHeight() - 1); for (int row = minRow; row <= maxRow; row++) { for (int col = minColumn; col <= maxColumn; col++) { *************** *** 228,239 **** float z = (nx * (ax - point.x) + ny * (ay - point.y)) * oneOverNz + az; sp.addSample( ! new Sample( ! colorRed, ! colorGreen, ! colorBlue, ! opacityRed, ! opacityGreen, ! opacityBlue, ! z)); return true; } --- 222,232 ---- float z = (nx * (ax - point.x) + ny * (ay - point.y)) * oneOverNz + az; sp.addSample( ! colorRed, ! colorGreen, ! colorBlue, ! opacityRed, ! opacityGreen, ! opacityBlue, ! z); return true; } Index: SamplePoint.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/SamplePoint.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SamplePoint.java 15 May 2003 03:15:31 -0000 1.11 --- SamplePoint.java 18 Jul 2003 08:40:24 -0000 1.12 *************** *** 61,69 **** } ! public void addSample(Sample sample) { int i = 0; while (i < samples.size()) { Sample s = (Sample) samples.get(i++); ! if (s.behind(sample)) { samples.add(--i, sample); if (sample.isOpaque()) --- 61,85 ---- } ! public void addSample( ! float colorRed, ! float colorGreen, ! float colorBlue, ! float opacityRed, ! float opacityGreen, ! float opacityBlue, ! float z) { int i = 0; while (i < samples.size()) { Sample s = (Sample) samples.get(i++); ! if (s.behind(z)) { ! Sample sample = ! new Sample( ! colorRed, ! colorGreen, ! colorBlue, ! opacityRed, ! opacityGreen, ! opacityBlue, ! z); samples.add(--i, sample); if (sample.isOpaque()) *************** *** 73,76 **** --- 89,101 ---- return; } + Sample sample = + new Sample( + colorRed, + colorGreen, + colorBlue, + opacityRed, + opacityGreen, + opacityBlue, + z); samples.add(sample); if (sample.isOpaque()) Index: Sample.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Sample.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Sample.java 9 May 2003 00:05:13 -0000 1.3 --- Sample.java 18 Jul 2003 08:40:24 -0000 1.4 *************** *** 53,56 **** --- 53,60 ---- } + public boolean behind(float otherZ) { + return z > otherZ; + } + public boolean isOpaque() { return opacityRed== 1f && opacityGreen == 1f && opacityBlue == 1f; |
From: <ma...@us...> - 2003-07-17 16:35:55
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv3816/src/org/jrman/render Modified Files: FileBucket.java MemoryBucket.java RendererHidden.java Log Message: Small performance improvement. Index: FileBucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/FileBucket.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FileBucket.java 17 Jul 2003 04:03:11 -0000 1.3 --- FileBucket.java 17 Jul 2003 16:35:48 -0000 1.4 *************** *** 157,160 **** micropolygons = new NullStack(); } ! } --- 157,160 ---- micropolygons = new NullStack(); } ! } Index: MemoryBucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/MemoryBucket.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MemoryBucket.java 17 Jul 2003 04:03:11 -0000 1.2 --- MemoryBucket.java 17 Jul 2003 16:35:48 -0000 1.3 *************** *** 37,40 **** --- 37,44 ---- private boolean primitivesModified; + public MemoryBucket(int n) { + micropolygons.ensureCapacity(n); + } + public void addPrimitive(Primitive primitive) { primitives.add(primitive); *************** *** 75,78 **** public void prefetchMicropolygons() { } ! } --- 79,82 ---- public void prefetchMicropolygons() { } ! } Index: RendererHidden.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/RendererHidden.java,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** RendererHidden.java 17 Jul 2003 04:03:11 -0000 1.39 --- RendererHidden.java 17 Jul 2003 16:35:48 -0000 1.40 *************** *** 58,71 **** public class RendererHidden extends Renderer { ! private final static int MAX_EYE_SPLITS = 10; private final static Vector3f ORTHO_I = new Vector3f(0f, 0f, 1f); - private static Vector3f vtmp = new Vector3f(); - - private static Point3f ptmp1 = new Point3f(); - - private static Point3f ptmp2 = new Point3f(); - private ClippingVolume clippingVolume; --- 58,65 ---- public class RendererHidden extends Renderer { ! private final static int MAX_EYE_SPLITS = 20; private final static Vector3f ORTHO_I = new Vector3f(0f, 0f, 1f); private ClippingVolume clippingVolume; *************** *** 163,167 **** return false; Primitive[] sub = primitive.split(); ! // TODO: don't eliminate too many sbprimitives for (int i = 0; i < sub.length; i++) if (!addPrimitive(sub[i], --- 157,161 ---- return false; Primitive[] sub = primitive.split(); ! boolean result = true; for (int i = 0; i < sub.length; i++) if (!addPrimitive(sub[i], *************** *** 171,176 **** curRow, check)) ! return false; ! return true; } --- 165,170 ---- curRow, check)) ! result = false; ! return result; } *************** *** 183,191 **** boolean check) { bve = bve.transform(cameraToRaster); ! bv = bv.transform(cameraToRaster); ! primitive.setDistance(bv.getMinZ()); Bounds2f bounds = bve.toBounds2f(); float db = primitive.getAttributes().getDisplacementBound(); if (db != 0f) { Bounds2f bnd = bv.toBounds2f(); float dw = bounds.getWidth() - bnd.getWidth(); --- 177,185 ---- boolean check) { bve = bve.transform(cameraToRaster); ! primitive.setDistance(bve.getMinZ()); Bounds2f bounds = bve.toBounds2f(); float db = primitive.getAttributes().getDisplacementBound(); if (db != 0f) { + bv = bv.transform(cameraToRaster); Bounds2f bnd = bv.toBounds2f(); float dw = bounds.getWidth() - bnd.getWidth(); *************** *** 584,590 **** for (int i = 0; i < buckets.length; i++) buckets[i] = new FileBucket(i); ! else for (int i = 0; i < buckets.length; i++) ! buckets[i] = new MemoryBucket(); } --- 578,586 ---- for (int i = 0; i < buckets.length; i++) buckets[i] = new FileBucket(i); ! else { ! int estimatedMicropolygons = (int) (bucketWidth * bucketHeight * 16); for (int i = 0; i < buckets.length; i++) ! buckets[i] = new MemoryBucket(estimatedMicropolygons); ! } } |
From: <ma...@us...> - 2003-07-17 16:35:55
|
Update of /cvsroot/jrman/drafts/sampleData In directory sc8-pr-cvs1:/tmp/cvs-serv3816/sampleData Modified Files: bike.rib elephant2.rib shaderTest.rib TextureTest.rib aphrodite.rib Log Message: Small performance improvement. Index: bike.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/bike.rib,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** bike.rib 26 Jun 2003 04:10:45 -0000 1.7 --- bike.rib 17 Jul 2003 16:35:48 -0000 1.8 *************** *** 1,4 **** ! Display "bike" "framebuffer" "rgb" ! PixelFilter "triangle" 2 2 #Option "limits" "bucketsize" [32 32] Format 800 600 1 --- 1,4 ---- ! Display "bike" "framebuffer" "rgba" ! PixelFilter "gaussian" 2 2 #Option "limits" "bucketsize" [32 32] Format 800 600 1 Index: elephant2.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/elephant2.rib,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** elephant2.rib 26 May 2003 01:47:59 -0000 1.1 --- elephant2.rib 17 Jul 2003 16:35:49 -0000 1.2 *************** *** 3,7 **** Exposure 1 2.2 Clipping 40 80 - Option "limits" "gridsize" 1024 "bucketsize" [32 32] Display "Elephant" "framebuffer" "rgb" PixelFilter "box" 1 1 --- 3,6 ---- Index: shaderTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/shaderTest.rib,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** shaderTest.rib 17 Jul 2003 04:03:10 -0000 1.10 --- shaderTest.rib 17 Jul 2003 16:35:49 -0000 1.11 *************** *** 1,7 **** - Option "buckets" "file" 1 - Option "limits" "bucketsize" [64 64] "gridsize" 4096 Format 800 600 1 Display "shaderTest" "framebuffer" "rgba" - PixelFilter "box" 1 1 PixelSamples 4 4 Exposure 1 2.2 --- 1,4 ---- Index: TextureTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/TextureTest.rib,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** TextureTest.rib 10 Jul 2003 14:48:26 -0000 1.6 --- TextureTest.rib 17 Jul 2003 16:35:49 -0000 1.7 *************** *** 15,24 **** MakeTexture "mandrill.jpg" "mandrill.txr" "periodic" "periodic" "gaussian" 2 2 Format 800 600 1 ! Display "TextureTest" "framebuffer" "rgb" PixelSamples 4 4 Exposure 1 2.2 ScreenWindow -1.33 1.33 -1 1 Projection "perspective" "fov" 90 ! Translate 0 0 1 WorldBegin LightSource "ambientlight" 1 "intensity" 1 --- 15,24 ---- MakeTexture "mandrill.jpg" "mandrill.txr" "periodic" "periodic" "gaussian" 2 2 Format 800 600 1 ! Display "TextureTest" "framebuffer" "rgba" PixelSamples 4 4 Exposure 1 2.2 ScreenWindow -1.33 1.33 -1 1 Projection "perspective" "fov" 90 ! Translate 0 0 -1 WorldBegin LightSource "ambientlight" 1 "intensity" 1 Index: aphrodite.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/aphrodite.rib,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** aphrodite.rib 10 Jul 2003 14:48:26 -0000 1.4 --- aphrodite.rib 17 Jul 2003 16:35:49 -0000 1.5 *************** *** 5,10 **** # scene definitions ! Option "buckets" "file" 1 ! Display "aphrodite" "framebuffer" "rgb" PixelFilter "gaussian" 2 2 Format 640 480 1 --- 5,9 ---- # scene definitions ! Display "aphrodite" "framebuffer" "rgba" PixelFilter "gaussian" 2 2 Format 640 480 1 |
From: <ma...@us...> - 2003-07-17 16:35:55
|
Update of /cvsroot/jrman/drafts/src/org/jrman/grid In directory sc8-pr-cvs1:/tmp/cvs-serv3816/src/org/jrman/grid Modified Files: Color3fGrid.java FloatGrid.java Log Message: Small performance improvement. Index: Color3fGrid.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/grid/Color3fGrid.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Color3fGrid.java 12 Jun 2003 18:36:08 -0000 1.6 --- Color3fGrid.java 17 Jul 2003 16:35:50 -0000 1.7 *************** *** 20,25 **** package org.jrman.grid; - import java.awt.image.BufferedImage; - import javax.vecmath.Color3f; --- 20,23 ---- Index: FloatGrid.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/grid/FloatGrid.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** FloatGrid.java 12 Jun 2003 18:36:08 -0000 1.12 --- FloatGrid.java 17 Jul 2003 16:35:50 -0000 1.13 *************** *** 20,25 **** package org.jrman.grid; - import java.awt.image.BufferedImage; - import javax.vecmath.Point3f; import javax.vecmath.Vector3f; --- 20,23 ---- |
From: <ma...@us...> - 2003-07-17 16:35:55
|
Update of /cvsroot/jrman/drafts/src/org/jrman/attributes In directory sc8-pr-cvs1:/tmp/cvs-serv3816/src/org/jrman/attributes Modified Files: Attributes.java Log Message: Small performance improvement. Index: Attributes.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/attributes/Attributes.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Attributes.java 21 May 2003 06:04:31 -0000 1.3 --- Attributes.java 17 Jul 2003 16:35:50 -0000 1.4 *************** *** 20,30 **** package org.jrman.attributes; - import java.util.Collections; import java.util.Set; import javax.vecmath.Color3f; ! import org.jrman.geom.*; ! import org.jrman.shaders.*; --- 20,32 ---- package org.jrman.attributes; import java.util.Set; import javax.vecmath.Color3f; ! import org.jrman.geom.Bounds3f; ! import org.jrman.geom.Transform; ! import org.jrman.shaders.DisplacementShader; ! import org.jrman.shaders.SurfaceShader; ! import org.jrman.shaders.VolumeShader; |
From: <ma...@us...> - 2003-07-17 04:03:15
|
Update of /cvsroot/jrman/drafts/sampleData In directory sc8-pr-cvs1:/tmp/cvs-serv17829/sampleData Modified Files: shaderTest.rib 4INS-Balls.rib Log Message: Implemented bucket prefetch. Index: shaderTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/shaderTest.rib,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** shaderTest.rib 29 May 2003 22:45:11 -0000 1.9 --- shaderTest.rib 17 Jul 2003 04:03:10 -0000 1.10 *************** *** 1,4 **** Format 800 600 1 ! Display "shaderTest" "framebuffer" "rgb" PixelFilter "box" 1 1 PixelSamples 4 4 --- 1,6 ---- + Option "buckets" "file" 1 + Option "limits" "bucketsize" [64 64] "gridsize" 4096 Format 800 600 1 ! Display "shaderTest" "framebuffer" "rgba" PixelFilter "box" 1 1 PixelSamples 4 4 Index: 4INS-Balls.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/4INS-Balls.rib,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** 4INS-Balls.rib 26 May 2003 07:17:24 -0000 1.2 --- 4INS-Balls.rib 17 Jul 2003 04:03:10 -0000 1.3 *************** *** 2,6 **** version 3.03 Display "4INS-Balls" "framebuffer" "rgb" ! Format 2000 1500 1 #FrameAspectRatio 1.054393 #ScreenWindow -1.581590 1.581590 -1.500000 1.500000 --- 2,6 ---- version 3.03 Display "4INS-Balls" "framebuffer" "rgb" ! Format 320 240 1 #FrameAspectRatio 1.054393 #ScreenWindow -1.581590 1.581590 -1.500000 1.500000 *************** *** 27,32 **** Scale 10 10 10 WorldBegin # MoleculeID: 0 ReprID: 0 Beginning VDW - Surface "plastic" #Opacity .3 .3 .3 TransformBegin --- 27,35 ---- Scale 10 10 10 WorldBegin + ShadingRate .1 + Surface "paintedplastic" "texturename" "moon.txr" "Ks" 0 + Displacement "bumpy" "texturename" "moon.txr" "Km" .8 + Attribute "displacementbound" "sphere" 1.6 # MoleculeID: 0 ReprID: 0 Beginning VDW #Opacity .3 .3 .3 TransformBegin |
From: <ma...@us...> - 2003-07-17 04:03:14
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv17829/src/org/jrman/render Modified Files: Bucket.java MemoryBucket.java FileBucket.java RendererHidden.java Log Message: Implemented bucket prefetch. Index: Bucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Bucket.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Bucket.java 10 Jul 2003 14:48:26 -0000 1.7 --- Bucket.java 17 Jul 2003 04:03:11 -0000 1.8 *************** *** 24,40 **** public interface Bucket { ! public abstract void addPrimitive(Primitive primitive); ! public abstract boolean hasMorePrimitives(); ! public abstract Primitive getNextPrimitive(); ! public abstract void addMicropolygon(Micropolygon mp); ! public abstract boolean hasMoreMicropolygons(); ! public abstract Micropolygon getNextMicropolygon(); ! public abstract void flush(); } --- 24,42 ---- public interface Bucket { ! void addPrimitive(Primitive primitive); ! boolean hasMorePrimitives(); ! Primitive getNextPrimitive(); ! void addMicropolygon(Micropolygon mp); ! boolean hasMoreMicropolygons(); ! Micropolygon getNextMicropolygon(); ! void flush(); ! ! void prefetchMicropolygons(); } Index: MemoryBucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/MemoryBucket.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MemoryBucket.java 10 Jul 2003 14:48:26 -0000 1.1 --- MemoryBucket.java 17 Jul 2003 04:03:11 -0000 1.2 *************** *** 73,75 **** --- 73,78 ---- } + public void prefetchMicropolygons() { + } + } Index: FileBucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/FileBucket.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FileBucket.java 12 Jul 2003 21:09:42 -0000 1.2 --- FileBucket.java 17 Jul 2003 04:03:11 -0000 1.3 *************** *** 44,47 **** --- 44,49 ---- private boolean inMemory; + protected boolean reading; + private int count; *************** *** 92,96 **** } ! public boolean hasMoreMicropolygons() { return count != 0 || !micropolygons.isEmpty(); } --- 94,106 ---- } ! public synchronized boolean hasMoreMicropolygons() { ! synchronized (this) { ! while (reading) ! try { ! wait(); ! } catch (InterruptedException e) { ! System.err.println("Interrupted???: " + e); ! } ! } return count != 0 || !micropolygons.isEmpty(); } *************** *** 98,123 **** public Micropolygon getNextMicropolygon() { if (!inMemory && count != 0) { ! try { ! if (dos != null) { ! dos.flush(); ! dos.close(); ! } ! micropolygons.ensureCapacity(+ count + count / 2); ! FileInputStream fis = new FileInputStream(filename); ! DataInputStream dis = new DataInputStream(new BufferedInputStream(fis)); ! for (int i = 0; i < count; i++) { ! Micropolygon mp = new SimpleMicropolygon(); ! mp.read(dis); ! micropolygons.push(mp); } ! fis.close(); ! new File(filename).delete(); ! count = 0; ! inMemory = true; ! } catch (Exception e) { ! throw new RuntimeException(e); } } - return (Micropolygon) micropolygons.pop(); } --- 108,154 ---- public Micropolygon getNextMicropolygon() { if (!inMemory && count != 0) { ! readMicropolygons(); ! } ! return (Micropolygon) micropolygons.pop(); ! } ! ! public void prefetchMicropolygons() { ! inMemory = true; ! if (count != 0) { ! reading = true; ! Runnable runnable = new Runnable() { ! public void run() { ! readMicropolygons(); ! synchronized (FileBucket.this) { ! reading = false; ! FileBucket.this.notify(); ! } } ! }; ! new Thread(runnable).start(); ! } ! } ! ! protected void readMicropolygons() { ! try { ! if (dos != null) { ! dos.flush(); ! dos.close(); } + micropolygons.ensureCapacity(count + count / 2); + FileInputStream fis = new FileInputStream(filename); + DataInputStream dis = new DataInputStream(new BufferedInputStream(fis)); + for (int i = 0; i < count; i++) { + Micropolygon mp = new SimpleMicropolygon(); + mp.read(dis); + micropolygons.push(mp); + } + fis.close(); + new File(filename).delete(); + count = 0; + inMemory = true; + } catch (Exception e) { + throw new RuntimeException(e); } } Index: RendererHidden.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/RendererHidden.java,v retrieving revision 1.38 retrieving revision 1.39 diff -C2 -d -r1.38 -r1.39 *** RendererHidden.java 16 Jul 2003 07:20:49 -0000 1.38 --- RendererHidden.java 17 Jul 2003 04:03:11 -0000 1.39 *************** *** 156,160 **** Plane.Side side = bv.whichSideOf(eyePlane); if (side == Plane.Side.INSIDE) { ! placeInBucket(primitive, bve, bv, objectToCamera, curColumn, curRow, check); return true; } --- 156,160 ---- Plane.Side side = bv.whichSideOf(eyePlane); if (side == Plane.Side.INSIDE) { ! placeInBucket(primitive, bve, bv, curColumn, curRow, check); return true; } *************** *** 179,183 **** BoundingVolume bve, BoundingVolume bv, - Transform objectToCamera, int column, int row, --- 179,182 ---- *************** *** 307,310 **** --- 306,310 ---- for (int column = 0; column < bucketColumns; column++) { Bucket bucket = getBucket(column, row); + prefetchNextBucket(column, row); float samplerX = rmin.x + bucketWidth * column; float samplerY = rmin.y + bucketHeight * row; *************** *** 456,459 **** --- 456,466 ---- System.out.println("---------------------------------------------------"); } + } + + private void prefetchNextBucket(int column, int row) { + if (column < bucketColumns - 1) + getBucket(column + 1, row).prefetchMicropolygons(); + else if (row < bucketRows - 1) + getBucket(0, row + 1).prefetchMicropolygons(); } |
From: <ma...@us...> - 2003-07-16 07:20:52
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv5923/src/org/jrman/render Modified Files: RendererHidden.java Log Message: Fixed displacement bound bugs. Index: RendererHidden.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/RendererHidden.java,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** RendererHidden.java 12 Jul 2003 21:09:42 -0000 1.37 --- RendererHidden.java 16 Jul 2003 07:20:49 -0000 1.38 *************** *** 147,156 **** boolean check) { BoundingVolume bv = primitive.getBoundingVolume(); bv = bv.transform(objectToCamera); ! if (clippingVolume.whereIs(bv) == Plane.Side.OUTSIDE) return true; Plane.Side side = bv.whichSideOf(eyePlane); if (side == Plane.Side.INSIDE) { ! placeInBucket(primitive, bv, objectToCamera, curColumn, curRow, check); return true; } --- 147,160 ---- boolean check) { BoundingVolume bv = primitive.getBoundingVolume(); + float db = primitive.getAttributes().getDisplacementBound(); + BoundingVolume bve; + bve = bv.enlarge(db); + bve = bve.transform(objectToCamera); bv = bv.transform(objectToCamera); ! if (clippingVolume.whereIs(bve) == Plane.Side.OUTSIDE) return true; Plane.Side side = bv.whichSideOf(eyePlane); if (side == Plane.Side.INSIDE) { ! placeInBucket(primitive, bve, bv, objectToCamera, curColumn, curRow, check); return true; } *************** *** 159,162 **** --- 163,167 ---- return false; Primitive[] sub = primitive.split(); + // TODO: don't eliminate too many sbprimitives for (int i = 0; i < sub.length; i++) if (!addPrimitive(sub[i], *************** *** 172,175 **** --- 177,181 ---- private void placeInBucket( Primitive primitive, + BoundingVolume bve, BoundingVolume bv, Transform objectToCamera, *************** *** 177,200 **** int row, boolean check) { ! float dist = bv.getMinZ(); bv = bv.transform(cameraToRaster); primitive.setDistance(bv.getMinZ()); ! Bounds2f bounds; float db = primitive.getAttributes().getDisplacementBound(); if (db != 0f) { ! vtmp.set(db, 0f, 0f); ! objectToCamera.transformVector(vtmp, vtmp); ! float l = vtmp.length(); ! vtmp.set(l, 0f, 0f); ! ptmp1.set(0f, 0f, dist); ! ptmp2.add(ptmp1, vtmp); ! cameraToRaster.transformPoint(ptmp1, ptmp1); ! cameraToRaster.transformPoint(ptmp2, ptmp2); ! vtmp.sub(ptmp1, ptmp2); ! float screenDisplacement = vtmp.length(); ! bounds = bv.toBounds2f(screenDisplacement); ! primitive.setScreenDisplacement(screenDisplacement); ! } else { ! bounds = bv.toBounds2f(); } primitive.setRasterBounds(bounds); --- 183,197 ---- int row, boolean check) { ! bve = bve.transform(cameraToRaster); bv = bv.transform(cameraToRaster); primitive.setDistance(bv.getMinZ()); ! Bounds2f bounds = bve.toBounds2f(); float db = primitive.getAttributes().getDisplacementBound(); if (db != 0f) { ! Bounds2f bnd = bv.toBounds2f(); ! float dw = bounds.getWidth() - bnd.getWidth(); ! float dh = bounds.getHeight() - bnd.getHeight(); ! primitive.setScreenDisplacementWidth(dw); ! primitive.setScreenDisplacementHeight(dh); } primitive.setRasterBounds(bounds); *************** *** 243,253 **** float mpMaxX = mp.getMaxX() - rasterWindowMin.x; float mpMaxY = mp.getMaxY() - rasterWindowMin.y; ! int minColumn = Calc.clamp((int) (mpMinX / bucketWidth), 0, bucketColumns - 1); ! int minRow = Calc.clamp((int) (mpMinY / bucketHeight), 0, bucketRows - 1); ! int maxColumn = Calc.clamp((int) (mpMaxX / bucketWidth), 0, bucketColumns - 1); ! int maxRow = Calc.clamp((int) (mpMaxY / bucketHeight), 0, bucketRows - 1); for (int col = minColumn; col <= maxColumn; col++) for (int row = minRow; row <= maxRow; row++) ! getBucket(col, row).addMicropolygon(mp); } --- 240,251 ---- float mpMaxX = mp.getMaxX() - rasterWindowMin.x; float mpMaxY = mp.getMaxY() - rasterWindowMin.y; ! int minColumn = (int) (mpMinX / bucketWidth); ! int minRow = (int) (mpMinY / bucketHeight); ! int maxColumn = (int) (mpMaxX / bucketWidth); ! int maxRow = (int) (mpMaxY / bucketHeight); for (int col = minColumn; col <= maxColumn; col++) for (int row = minRow; row <= maxRow; row++) ! if (col >= 0 && col < bucketColumns && row >= 0 && row < bucketRows) ! getBucket(col, row).addMicropolygon(mp); } *************** *** 503,509 **** Point3f lowerLeft = new Point3f(min.x, min.y, 1f); Point3f lowerRight = new Point3f(max.x, min.y, 1f); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperLeft, upperRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperRight, lowerRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerRight, lowerLeft)); clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerLeft, upperLeft)); } else { --- 501,510 ---- Point3f lowerLeft = new Point3f(min.x, min.y, 1f); Point3f lowerRight = new Point3f(max.x, min.y, 1f); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(origin, upperLeft, upperRight)); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(origin, upperRight, lowerRight)); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(origin, lowerRight, lowerLeft)); clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerLeft, upperLeft)); } else { *************** *** 516,523 **** Point3f originLowerLeft = new Point3f(min.x, min.y, 0f); Point3f originLowerRight = new Point3f(max.x, min.y, 0f); ! clippingVolume.addPlane(Plane.createWithThreePoints(originUpperLeft, upperLeft, upperRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originUpperRight, upperRight, lowerRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originLowerRight, lowerRight, lowerLeft)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originLowerLeft, lowerLeft, upperLeft)); } float near = frame.getNearClipping(); --- 517,528 ---- Point3f originLowerLeft = new Point3f(min.x, min.y, 0f); Point3f originLowerRight = new Point3f(max.x, min.y, 0f); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(originUpperLeft, upperLeft, upperRight)); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(originUpperRight, upperRight, lowerRight)); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(originLowerRight, lowerRight, lowerLeft)); ! clippingVolume.addPlane( ! Plane.createWithThreePoints(originLowerLeft, lowerLeft, upperLeft)); } float near = frame.getNearClipping(); |
From: <ma...@us...> - 2003-07-16 07:20:52
|
Update of /cvsroot/jrman/drafts/src/org/jrman/primitive In directory sc8-pr-cvs1:/tmp/cvs-serv5923/src/org/jrman/primitive Modified Files: Primitive.java Log Message: Fixed displacement bound bugs. Index: Primitive.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/primitive/Primitive.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Primitive.java 7 Jun 2003 18:38:43 -0000 1.17 --- Primitive.java 16 Jul 2003 07:20:49 -0000 1.18 *************** *** 57,61 **** protected Bounds2f rasterBounds; ! protected float screenDisplacement; protected float distance; --- 57,63 ---- protected Bounds2f rasterBounds; ! protected float screenDisplacementWidth; ! ! protected float screenDisplacementHeight; protected float distance; *************** *** 88,97 **** } ! public void setScreenDisplacement(float sd) { ! screenDisplacement = sd; } ! public float getScreenDisplacement() { ! return screenDisplacement; } --- 90,107 ---- } ! public void setScreenDisplacementWidth(float sd) { ! screenDisplacementWidth = sd; } ! public float getScreenDisplacementWidth() { ! return screenDisplacementWidth; ! } ! ! public void setScreenDisplacementHeight(float sd) { ! screenDisplacementHeight = sd; ! } ! ! public float getScreenDisplacementHeight() { ! return screenDisplacementHeight; } *************** *** 491,496 **** public boolean isReadyToBeDiced(int gridSize) { ! float width = rasterBounds.getWidth() - screenDisplacement * 2; ! float height = rasterBounds.getHeight() - screenDisplacement * 2; boolean ready = width * height <= gridSize * attributes.getShadingRate(); if (!ready) --- 501,506 ---- public boolean isReadyToBeDiced(int gridSize) { ! float width = rasterBounds.getWidth() - screenDisplacementWidth; ! float height = rasterBounds.getHeight() - screenDisplacementHeight; boolean ready = width * height <= gridSize * attributes.getShadingRate(); if (!ready) |
From: <ma...@us...> - 2003-07-16 07:20:52
|
Update of /cvsroot/jrman/drafts/src/org/jrman/geom In directory sc8-pr-cvs1:/tmp/cvs-serv5923/src/org/jrman/geom Modified Files: BoundingVolume.java Bounds3f.java ConvexHull3f.java Log Message: Fixed displacement bound bugs. Index: BoundingVolume.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/geom/BoundingVolume.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** BoundingVolume.java 20 May 2003 01:08:37 -0000 1.6 --- BoundingVolume.java 16 Jul 2003 07:20:49 -0000 1.7 *************** *** 33,35 **** --- 33,37 ---- float getMinZ(); + + BoundingVolume enlarge(float margin); } Index: Bounds3f.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/geom/Bounds3f.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Bounds3f.java 20 May 2003 01:08:37 -0000 1.12 --- Bounds3f.java 16 Jul 2003 07:20:49 -0000 1.13 *************** *** 80,84 **** return new Bounds2f(minX, maxX, minY, maxY); } ! public Bounds2f toBounds2f(float margin) { return new Bounds2f(minX - margin, maxX + margin, minY - margin, maxY + margin); --- 80,84 ---- return new Bounds2f(minX, maxX, minY, maxY); } ! public Bounds2f toBounds2f(float margin) { return new Bounds2f(minX - margin, maxX + margin, minY - margin, maxY + margin); *************** *** 265,268 **** --- 265,278 ---- .append(')'); return sb.toString(); + } + + public BoundingVolume enlarge(float margin) { + return new Bounds3f( + minX - margin, + maxX + margin, + minY - margin, + maxY + margin, + minZ - margin, + maxZ + margin); } Index: ConvexHull3f.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/geom/ConvexHull3f.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** ConvexHull3f.java 20 May 2003 01:08:37 -0000 1.12 --- ConvexHull3f.java 16 Jul 2003 07:20:49 -0000 1.13 *************** *** 119,121 **** --- 119,125 ---- } + public BoundingVolume enlarge(float margin) { + return getBoundingBox().enlarge(margin); + } + } |
From: <ma...@us...> - 2003-07-12 21:09:45
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv6860/src/org/jrman/render Modified Files: FileBucket.java RendererHidden.java ImageStore.java Log Message: Fixed orthographic projection bounding volume. Use right BufferedImage for "rgb" and "rgba". Index: FileBucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/FileBucket.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** FileBucket.java 10 Jul 2003 14:48:26 -0000 1.1 --- FileBucket.java 12 Jul 2003 21:09:42 -0000 1.2 *************** *** 103,106 **** --- 103,107 ---- dos.close(); } + micropolygons.ensureCapacity(+ count + count / 2); FileInputStream fis = new FileInputStream(filename); DataInputStream dis = new DataInputStream(new BufferedInputStream(fis)); Index: RendererHidden.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/RendererHidden.java,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** RendererHidden.java 10 Jul 2003 14:48:26 -0000 1.36 --- RendererHidden.java 12 Jul 2003 21:09:42 -0000 1.37 *************** *** 41,44 **** --- 41,45 ---- import org.jrman.geom.Plane; import org.jrman.geom.Transform; + import org.jrman.options.CameraProjection; import org.jrman.options.Display; import org.jrman.options.Filter; *************** *** 258,262 **** worldParseEnd = System.currentTimeMillis(); ImageStore imageStore = ! new ImageStore(frame.getHorizontalResolution(), frame.getVerticalResolution()); RenderCanvas rc = null; if (frame.getDisplay().getType() == Display.Type.FRAMEBUFFER) { --- 259,266 ---- worldParseEnd = System.currentTimeMillis(); ImageStore imageStore = ! new ImageStore( ! frame.getHorizontalResolution(), ! frame.getVerticalResolution(), ! frame.getDisplay()); RenderCanvas rc = null; if (frame.getDisplay().getType() == Display.Type.FRAMEBUFFER) { *************** *** 493,505 **** Point2f max = renderingScreenWindow.getMax(); clippingVolume = new ClippingVolume(); ! Point3f origin = new Point3f(); ! Point3f upperLeft = new Point3f(min.x, max.y, 1f); ! Point3f upperRight = new Point3f(max.x, max.y, 1f); ! Point3f lowerLeft = new Point3f(min.x, min.y, 1f); ! Point3f lowerRight = new Point3f(max.x, min.y, 1f); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperLeft, upperRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperRight, lowerRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerRight, lowerLeft)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerLeft, upperLeft)); float near = frame.getNearClipping(); clippingVolume.addPlane( --- 497,524 ---- Point2f max = renderingScreenWindow.getMax(); clippingVolume = new ClippingVolume(); ! if (frame.getCameraProjection() == CameraProjection.PERSPECTIVE) { ! Point3f origin = new Point3f(); ! Point3f upperLeft = new Point3f(min.x, max.y, 1f); ! Point3f upperRight = new Point3f(max.x, max.y, 1f); ! Point3f lowerLeft = new Point3f(min.x, min.y, 1f); ! Point3f lowerRight = new Point3f(max.x, min.y, 1f); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperLeft, upperRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, upperRight, lowerRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerRight, lowerLeft)); ! clippingVolume.addPlane(Plane.createWithThreePoints(origin, lowerLeft, upperLeft)); ! } else { ! Point3f upperLeft = new Point3f(min.x, max.y, 1f); ! Point3f upperRight = new Point3f(max.x, max.y, 1f); ! Point3f lowerLeft = new Point3f(min.x, min.y, 1f); ! Point3f lowerRight = new Point3f(max.x, min.y, 1f); ! Point3f originUpperLeft = new Point3f(min.x, max.y, 0f); ! Point3f originUpperRight = new Point3f(max.x, max.y, 0f); ! Point3f originLowerLeft = new Point3f(min.x, min.y, 0f); ! Point3f originLowerRight = new Point3f(max.x, min.y, 0f); ! clippingVolume.addPlane(Plane.createWithThreePoints(originUpperLeft, upperLeft, upperRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originUpperRight, upperRight, lowerRight)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originLowerRight, lowerRight, lowerLeft)); ! clippingVolume.addPlane(Plane.createWithThreePoints(originLowerLeft, lowerLeft, upperLeft)); ! } float near = frame.getNearClipping(); clippingVolume.addPlane( Index: ImageStore.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/ImageStore.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ImageStore.java 2 Jul 2003 07:03:31 -0000 1.3 --- ImageStore.java 12 Jul 2003 21:09:42 -0000 1.4 *************** *** 22,25 **** --- 22,27 ---- import java.awt.image.BufferedImage; + import org.jrman.options.Display; + public class ImageStore { *************** *** 30,37 **** private BufferedImage image; ! public ImageStore(int hSize, int vSize) { this.hSize = hSize; this.vSize = vSize; ! image = new BufferedImage(hSize, vSize, BufferedImage.TYPE_INT_RGB); } --- 32,42 ---- private BufferedImage image; ! public ImageStore(int hSize, int vSize, Display display) { this.hSize = hSize; this.vSize = vSize; ! if (display.getMode() == Display.Mode.RGB) ! image = new BufferedImage(hSize, vSize, BufferedImage.TYPE_INT_RGB); ! else ! image = new BufferedImage(hSize, vSize, BufferedImage.TYPE_INT_ARGB); } |
From: <ma...@us...> - 2003-07-10 17:03:11
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv15050/src/org/jrman/render Modified Files: SimpleMicropolygon.java Log Message: Fixed small file buckets bug. Index: SimpleMicropolygon.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/SimpleMicropolygon.java,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** SimpleMicropolygon.java 10 Jul 2003 14:48:26 -0000 1.5 --- SimpleMicropolygon.java 10 Jul 2003 17:01:39 -0000 1.6 *************** *** 121,126 **** colorBlue = dis.readFloat(); opacityRed = dis.readFloat(); - opacityBlue = dis.readFloat(); opacityGreen = dis.readFloat(); minX = dis.readFloat(); maxX = dis.readFloat(); --- 121,126 ---- colorBlue = dis.readFloat(); opacityRed = dis.readFloat(); opacityGreen = dis.readFloat(); + opacityBlue = dis.readFloat(); minX = dis.readFloat(); maxX = dis.readFloat(); |
From: <ma...@us...> - 2003-07-10 14:48:30
|
Update of /cvsroot/jrman/drafts/sampleData In directory sc8-pr-cvs1:/tmp/cvs-serv26926/sampleData Modified Files: TextureTest.rib aphrodite.rib DinningRoom.rib Log Message: Added file buckets option. Index: TextureTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/TextureTest.rib,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** TextureTest.rib 3 Jul 2003 17:57:52 -0000 1.5 --- TextureTest.rib 10 Jul 2003 14:48:26 -0000 1.6 *************** *** 23,27 **** WorldBegin LightSource "ambientlight" 1 "intensity" 1 ! ShadingRate .25 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 --- 23,27 ---- WorldBegin LightSource "ambientlight" 1 "intensity" 1 ! ShadingRate 1 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 Index: aphrodite.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/aphrodite.rib,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** aphrodite.rib 26 Jun 2003 04:10:45 -0000 1.3 --- aphrodite.rib 10 Jul 2003 14:48:26 -0000 1.4 *************** *** 5,8 **** --- 5,9 ---- # scene definitions + Option "buckets" "file" 1 Display "aphrodite" "framebuffer" "rgb" PixelFilter "gaussian" 2 2 Index: DinningRoom.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/DinningRoom.rib,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** DinningRoom.rib 3 Jul 2003 17:57:52 -0000 1.13 --- DinningRoom.rib 10 Jul 2003 14:48:26 -0000 1.14 *************** *** 1,10 **** ! #MakeTexture "brick.jpg" "brick.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "woo12.jpg" "woo12.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "rattan.gif" "rattan.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "mosaic.gif" "mosaic.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "gradient.png" "gradient.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "marb2.gif" "marb2.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "marble7.gif" "marble7.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "clay.gif" "clay.txr" "periodic" "periodic" "gaussian" 2 2 Display "TableReflection.png" "file" "rgba" --- 1,10 ---- ! MakeTexture "brick.jpg" "brick.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "woo12.jpg" "woo12.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "rattan.gif" "rattan.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "mosaic.gif" "mosaic.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "gradient.png" "gradient.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "marb2.gif" "marb2.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "marble7.gif" "marble7.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "clay.gif" "clay.txr" "periodic" "periodic" "gaussian" 2 2 Display "TableReflection.png" "file" "rgba" *************** *** 268,272 **** PixelSamples 4 4 Exposure 1 2.2 ! Format 512 384 1 Projection "perspective" "fov" [40] PixelFilter "gaussian" 2 2 --- 268,272 ---- PixelSamples 4 4 Exposure 1 2.2 ! Format 1000 750 1 Projection "perspective" "fov" [40] PixelFilter "gaussian" 2 2 *************** *** 276,280 **** WorldBegin ! LightSource "ambientlight" 1 "intensity" [0.1] LightSource "spotlight" 2 "intensity" [2000] "lightcolor" [1 1 1] "from" [0 100 50] "to" [0 45 98] --- 276,280 ---- WorldBegin ! ShadingRate .25 LightSource "ambientlight" 1 "intensity" [0.1] LightSource "spotlight" 2 "intensity" [2000] "lightcolor" [1 1 1] "from" [0 100 50] "to" [0 45 98] |
From: <ma...@us...> - 2003-07-10 14:48:29
|
Update of /cvsroot/jrman/drafts/src/org/jrman/parser In directory sc8-pr-cvs1:/tmp/cvs-serv26926/src/org/jrman/parser Modified Files: Frame.java Parser.java Global.java Log Message: Added file buckets option. Index: Frame.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/parser/Frame.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Frame.java 3 Jun 2003 04:35:29 -0000 1.10 --- Frame.java 10 Jul 2003 14:48:26 -0000 1.11 *************** *** 110,113 **** --- 110,115 ---- private boolean endOfFrameStatistics; + + private boolean fileBuckets; public Frame() { *************** *** 175,178 **** --- 177,181 ---- bucketSizeY = other.bucketSizeY; endOfFrameStatistics = other.endOfFrameStatistics; + fileBuckets = other.fileBuckets; } *************** *** 501,504 **** --- 504,515 ---- public void setEndOfFrameStatistics(boolean b) { endOfFrameStatistics = b; + } + + public boolean fileBucketsEnabled() { + return fileBuckets; + } + + public void setFileBuckets(boolean b) { + fileBuckets = b; } Index: Parser.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/parser/Parser.java,v retrieving revision 1.54 retrieving revision 1.55 diff -C2 -d -r1.54 -r1.55 *** Parser.java 3 Jul 2003 17:57:52 -0000 1.54 --- Parser.java 10 Jul 2003 14:48:26 -0000 1.55 *************** *** 610,613 **** --- 610,619 ---- frame.setEndOfFrameStatistics(onOff[0][0] != 0); } + } else if (name.equals("buckets")) { + Parameter parameter = (Parameter) parameters.get("file"); + if (parameter != null) { + int[][] onOff = (int[][]) parameter.getData(); + frame.setFileBuckets(onOff[0][0] != 0); + } } } Index: Global.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/parser/Global.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Global.java 1 Jun 2003 16:59:50 -0000 1.6 --- Global.java 10 Jul 2003 14:48:26 -0000 1.7 *************** *** 37,40 **** --- 37,41 ---- declarations.put("bucketsize", new Declaration("bucketsize", "integer[2]")); declarations.put("endofframe", new Declaration("endofframe", "integer")); + declarations.put("file", new Declaration("endofframe", "integer")); declarations.put("intensity", new Declaration("intensity", "float")); declarations.put("lightcolor", new Declaration("lightcolor", "color")); |
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv26926/src/org/jrman/render Modified Files: Bucket.java SimpleMicropolygon.java RendererHidden.java Micropolygon.java Added Files: MemoryBucket.java FileBucket.java Log Message: Added file buckets option. --- NEW FILE: MemoryBucket.java --- /* MemoryBucket.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.render; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Stack; import org.jrman.primitive.Primitive; import org.jrman.util.NullStack; public class MemoryBucket implements Bucket { private List primitives = new ArrayList(50); private Stack micropolygons = new Stack(); private boolean primitivesModified; public void addPrimitive(Primitive primitive) { primitives.add(primitive); primitivesModified = true; } public boolean hasMorePrimitives() { return !primitives.isEmpty(); } public Primitive getNextPrimitive() { if (primitivesModified) { Collections.sort(primitives); primitivesModified = false; } Primitive p = (Primitive) primitives.get(primitives.size() - 1); primitives.remove(primitives.size() - 1); return p; } public void addMicropolygon(Micropolygon mp) { micropolygons.push(mp); } public boolean hasMoreMicropolygons() { return !micropolygons.isEmpty(); } public Micropolygon getNextMicropolygon() { return (Micropolygon) micropolygons.pop(); } public void flush() { primitives = new ArrayList(); micropolygons = new NullStack(); } } --- NEW FILE: FileBucket.java --- /* FileBucket.java Copyright (C) 2003 Gerardo Horvilleur Martinez This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ package org.jrman.render; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Stack; import org.jrman.primitive.Primitive; import org.jrman.util.NullStack; public class FileBucket implements Bucket { private String filename; private DataOutputStream dos; private boolean inMemory; private int count; private List primitives = new ArrayList(50); private Stack micropolygons = new Stack(); private boolean primitivesModified; public FileBucket(int bucketNumber) { filename = "bucket" + bucketNumber; } public void addPrimitive(Primitive primitive) { primitives.add(primitive); primitivesModified = true; } public boolean hasMorePrimitives() { return !primitives.isEmpty(); } public Primitive getNextPrimitive() { if (primitivesModified) { Collections.sort(primitives); primitivesModified = false; } Primitive p = (Primitive) primitives.get(primitives.size() - 1); primitives.remove(primitives.size() - 1); return p; } public void addMicropolygon(Micropolygon mp) { if (inMemory) micropolygons.push(mp); else { try { if (dos == null) dos = new DataOutputStream( new BufferedOutputStream(new FileOutputStream(filename))); mp.write(dos); count++; } catch (IOException e) { throw new RuntimeException(e); } } } public boolean hasMoreMicropolygons() { return count != 0 || !micropolygons.isEmpty(); } public Micropolygon getNextMicropolygon() { if (!inMemory && count != 0) { try { if (dos != null) { dos.flush(); dos.close(); } FileInputStream fis = new FileInputStream(filename); DataInputStream dis = new DataInputStream(new BufferedInputStream(fis)); for (int i = 0; i < count; i++) { Micropolygon mp = new SimpleMicropolygon(); mp.read(dis); micropolygons.push(mp); } fis.close(); new File(filename).delete(); count = 0; inMemory = true; } catch (Exception e) { throw new RuntimeException(e); } } return (Micropolygon) micropolygons.pop(); } public void flush() { primitives = new ArrayList(); micropolygons = new NullStack(); } } Index: Bucket.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Bucket.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Bucket.java 28 May 2003 06:22:43 -0000 1.6 --- Bucket.java 10 Jul 2003 14:48:26 -0000 1.7 *************** *** 20,74 **** package org.jrman.render; - import java.util.ArrayList; - import java.util.Collections; - import java.util.List; - import java.util.Stack; - import org.jrman.primitive.Primitive; - import org.jrman.util.NullStack; - - public class Bucket { ! private List primitives = new ArrayList(50); ! private Stack micropolygons = new Stack(); ! private boolean primitivesModified; ! ! public void addPrimitive(Primitive primitive) { ! primitives.add(primitive); ! primitivesModified = true; ! } ! public boolean hasMorePrimitives() { ! return !primitives.isEmpty(); ! } ! public Primitive getNextPrimitive() { ! if (primitivesModified) { ! Collections.sort(primitives); ! primitivesModified = false; ! } ! Primitive p = (Primitive) primitives.get(primitives.size() - 1); ! primitives.remove(primitives.size() - 1); ! return p; ! } ! ! public void addMicropolygon(Micropolygon mp) { ! micropolygons.push(mp); ! } ! public boolean hasMoreMicropolygons() { ! return !micropolygons.isEmpty(); ! } ! public Micropolygon getNextMicropolygon() { ! return (Micropolygon) micropolygons.pop(); ! } ! ! public void flush() { ! primitives = new ArrayList(); ! micropolygons = new NullStack(); ! } ! ! } --- 20,40 ---- package org.jrman.render; import org.jrman.primitive.Primitive; ! public interface Bucket { ! public abstract void addPrimitive(Primitive primitive); ! public abstract boolean hasMorePrimitives(); ! public abstract Primitive getNextPrimitive(); ! public abstract void addMicropolygon(Micropolygon mp); ! public abstract boolean hasMoreMicropolygons(); ! public abstract Micropolygon getNextMicropolygon(); ! ! public abstract void flush(); ! ! } \ No newline at end of file Index: SimpleMicropolygon.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/SimpleMicropolygon.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SimpleMicropolygon.java 25 Jun 2003 17:14:04 -0000 1.4 --- SimpleMicropolygon.java 10 Jul 2003 14:48:26 -0000 1.5 *************** *** 20,23 **** --- 20,27 ---- package org.jrman.render; + import java.io.DataInputStream; + import java.io.DataOutputStream; + import java.io.IOException; + import javax.vecmath.Point2f; import javax.vecmath.Point3f; *************** *** 77,80 **** --- 81,132 ---- private float minZ = Constants.INFINITY; + + public void write(DataOutputStream dos) throws IOException { + dos.writeFloat(ax); + dos.writeFloat(ay); + dos.writeFloat(az); + dos.writeFloat(bx); + dos.writeFloat(by); + dos.writeFloat(cx); + dos.writeFloat(cy); + dos.writeFloat(nx); + dos.writeFloat(ny); + dos.writeFloat(oneOverNz); + dos.writeFloat(colorRed); + dos.writeFloat(colorGreen); + dos.writeFloat(colorBlue); + dos.writeFloat(opacityRed); + dos.writeFloat(opacityGreen); + dos.writeFloat(opacityBlue); + dos.writeFloat(minX); + dos.writeFloat(maxX); + dos.writeFloat(minY); + dos.writeFloat(maxY); + dos.writeFloat(minZ); + } + + public void read(DataInputStream dis) throws IOException { + ax =dis.readFloat(); + ay = dis.readFloat(); + az = dis.readFloat(); + bx = dis.readFloat(); + by = dis.readFloat(); + cx = dis.readFloat(); + cy = dis.readFloat(); + nx = dis.readFloat(); + ny = dis.readFloat(); + oneOverNz = dis.readFloat(); + colorRed = dis.readFloat(); + colorGreen = dis.readFloat(); + colorBlue = dis.readFloat(); + opacityRed = dis.readFloat(); + opacityBlue = dis.readFloat(); + opacityGreen = dis.readFloat(); + minX = dis.readFloat(); + maxX = dis.readFloat(); + minY = dis.readFloat(); + maxY = dis.readFloat(); + minZ = dis.readFloat(); + } public boolean init( Index: RendererHidden.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/RendererHidden.java,v retrieving revision 1.35 retrieving revision 1.36 diff -C2 -d -r1.35 -r1.36 *** RendererHidden.java 26 Jun 2003 04:10:45 -0000 1.35 --- RendererHidden.java 10 Jul 2003 14:48:26 -0000 1.36 *************** *** 53,57 **** import org.jrman.util.Calc; import org.jrman.util.Format; - import org.jrman.util.GaussianSamplesFilter; import org.jrman.util.SamplesFilter; --- 53,56 ---- *************** *** 395,412 **** bucketHeight - (row == 0 ? vPixelLess : 0)); } ! System ! .arraycopy( ! samples, ! (bucketHeight * sampler.getPixelHeight() ! - (row == 0 ? (vFilterExtra + vPixelLess * sampler.getPixelHeight()) : 0)) ! * bucketColumns ! * sampler.getWidth() ! * 3, ! samples, ! 0, ! (vFilterExtra + vPixelLess * sampler.getPixelHeight()) ! * bucketColumns ! * sampler.getWidth() ! * 3); } if (frame.getDisplay().getType() == Display.Type.FILE) --- 394,410 ---- bucketHeight - (row == 0 ? vPixelLess : 0)); } ! System.arraycopy( ! samples, ! (bucketHeight * sampler.getPixelHeight() ! - (row == 0 ? (vFilterExtra + vPixelLess * sampler.getPixelHeight()) : 0)) ! * bucketColumns ! * sampler.getWidth() ! * 3, ! samples, ! 0, ! (vFilterExtra + vPixelLess * sampler.getPixelHeight()) ! * bucketColumns ! * sampler.getWidth() ! * 3); } if (frame.getDisplay().getType() == Display.Type.FILE) *************** *** 552,557 **** bucketRows = (int) Math.ceil(height / bucketHeight); buckets = new Bucket[bucketColumns * bucketRows]; ! for (int i = 0; i < buckets.length; i++) ! buckets[i] = new Bucket(); } --- 550,559 ---- bucketRows = (int) Math.ceil(height / bucketHeight); buckets = new Bucket[bucketColumns * bucketRows]; ! if (frame.fileBucketsEnabled()) ! for (int i = 0; i < buckets.length; i++) ! buckets[i] = new FileBucket(i); ! else ! for (int i = 0; i < buckets.length; i++) ! buckets[i] = new MemoryBucket(); } Index: Micropolygon.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/Micropolygon.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Micropolygon.java 11 May 2003 02:53:43 -0000 1.11 --- Micropolygon.java 10 Jul 2003 14:48:26 -0000 1.12 *************** *** 20,23 **** --- 20,27 ---- package org.jrman.render; + import java.io.DataInputStream; + import java.io.DataOutputStream; + import java.io.IOException; + public abstract class Micropolygon { *************** *** 32,35 **** --- 36,43 ---- public abstract void sample(Sampler sampler); + + public abstract void write(DataOutputStream dos) throws IOException; + + public abstract void read(DataInputStream dis) throws IOException; } |
From: <ma...@us...> - 2003-07-03 17:57:56
|
Update of /cvsroot/jrman/drafts/src/org/jrman/main In directory sc8-pr-cvs1:/tmp/cvs-serv17576/src/org/jrman/main Modified Files: MkTxr.java Log Message: Implemented correct filtering for mipmap creation. Index: MkTxr.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/main/MkTxr.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MkTxr.java 12 Jun 2003 18:36:10 -0000 1.1 --- MkTxr.java 3 Jul 2003 17:57:52 -0000 1.2 *************** *** 25,30 **** public static void main(String[] args) { ! if (args.length != 4) { ! System.err.println("usage: mktxr imageFile textureFile sWrap tWrap"); System.exit(1); } --- 25,30 ---- public static void main(String[] args) { ! if (args.length != 7) { ! System.err.println("usage: mktxr imageFile textureFile sWrap tWrap filter sWidth tWidth"); System.exit(1); } *************** *** 34,38 **** args[1], MipMap.Mode.getNamed(args[2]), ! MipMap.Mode.getNamed(args[3])); } catch (Exception e) { System.err.println("Cannot create texture file"); --- 34,41 ---- args[1], MipMap.Mode.getNamed(args[2]), ! MipMap.Mode.getNamed(args[3]), ! args[4], ! Float.parseFloat(args[5]), ! Float.parseFloat(args[6])); } catch (Exception e) { System.err.println("Cannot create texture file"); |
From: <ma...@us...> - 2003-07-03 17:57:56
|
Update of /cvsroot/jrman/drafts/src/org/jrman/util In directory sc8-pr-cvs1:/tmp/cvs-serv17576/src/org/jrman/util Modified Files: SamplesFilter.java Log Message: Implemented correct filtering for mipmap creation. Index: SamplesFilter.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/util/SamplesFilter.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** SamplesFilter.java 25 Jun 2003 17:14:05 -0000 1.1 --- SamplesFilter.java 3 Jul 2003 17:57:52 -0000 1.2 *************** *** 20,23 **** --- 20,26 ---- package org.jrman.util; + import org.jrman.maps.MipMap; + import org.jrman.maps.MipMap.Mode; + public abstract class SamplesFilter { *************** *** 82,85 **** --- 85,145 ---- dst[dstOffset + (dstRowLength * row + col) * bandCount + band] = sum; } + } + + private int getValue(byte[] src, int s, int t, int size, Mode sMode, Mode tMode, int band) { + if (s < 0 || s >= size) { + if (sMode == MipMap.Mode.BLACK) + return (band == 3 ? 255 : 0); + else if (sMode == MipMap.Mode.CLAMP) + s = Calc.clamp(s, 0, size - 1); + else if (sMode == MipMap.Mode.PERIODIC) + s &= (size - 1); + } + if (t < 0 || t >= size) { + if (tMode == MipMap.Mode.BLACK) + return (band == 3 ? 255 : 0); + else if (tMode == MipMap.Mode.CLAMP) + t = Calc.clamp(t, 0, size - 1); + else if (tMode == MipMap.Mode.PERIODIC) + t &= (size - 1); + } + return src[(size * t + s) * 4 + band] & 0xff; + } + + public void doFilter( + byte[] src, + int srcSize, + byte[] dst, + int dstRowLength, + int colCount, + int rowCount, + int horizontalStep, + int verticalStep, + MipMap.Mode sMode, + MipMap.Mode tMode) { + for (int row = 0; row < rowCount; row++) + for (int col = 0; col < colCount; col++) + for (int band = 0; band < 4; band++) { + float sum = 0f; + for (int sampleRow = 0; sampleRow < height; sampleRow++) + for (int sampleCol = 0; sampleCol < width; sampleCol++) { + int srcRow = row * verticalStep + sampleRow - height / 2; + int srcCol = col * horizontalStep + sampleCol - width / 2; + int value = getValue(src, srcCol, srcRow, srcSize, sMode, tMode, band); + int amplitudeOffset = sampleRow * width + sampleCol; + sum += value * amplitude[amplitudeOffset]; + } + sum /= amplitudeSum; + dst[(dstRowLength * row + col) * 4 + band] = + (byte) Calc.clamp(sum, 0f, 255f); + } + } + + public int getHeight() { + return height; + } + + public int getWidth() { + return width; } |
From: <ma...@us...> - 2003-07-03 17:57:55
|
Update of /cvsroot/jrman/drafts/jrMan/bin In directory sc8-pr-cvs1:/tmp/cvs-serv17576/jrMan/bin Modified Files: mktxr.bat Log Message: Implemented correct filtering for mipmap creation. Index: mktxr.bat =================================================================== RCS file: /cvsroot/jrman/drafts/jrMan/bin/mktxr.bat,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** mktxr.bat 12 Jun 2003 18:36:05 -0000 1.1 --- mktxr.bat 3 Jul 2003 17:57:52 -0000 1.2 *************** *** 3,5 **** set CLASSPATH=%JRMAN_HOME%\jar\jrman.jar set MEMORY=192m ! java -Xms%MEMORY% -Xmx%MEMORY% org.jrman.main.MkTxr %1 %2 %3 %4 \ No newline at end of file --- 3,5 ---- set CLASSPATH=%JRMAN_HOME%\jar\jrman.jar set MEMORY=192m ! java -Xms%MEMORY% -Xmx%MEMORY% org.jrman.main.MkTxr %1 %2 %3 %4 %5 %6 %7 \ No newline at end of file |
From: <ma...@us...> - 2003-07-03 17:57:55
|
Update of /cvsroot/jrman/drafts/src/org/jrman/parser In directory sc8-pr-cvs1:/tmp/cvs-serv17576/src/org/jrman/parser Modified Files: Parser.java Log Message: Implemented correct filtering for mipmap creation. Index: Parser.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/parser/Parser.java,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** Parser.java 2 Jul 2003 07:03:31 -0000 1.53 --- Parser.java 3 Jul 2003 17:57:52 -0000 1.54 *************** *** 412,416 **** pushState(State.WORLD); frame.defineScreen(); ! Global.setTransform("raster", frame.getRasterTransform()); // from "screen" to "raster" Global.setTransform("NDC", frame.getNDCTransform()); // from "raster" to "NDC" saveCurrentTransformAs("camera"); // from "world" to "camera" --- 412,417 ---- pushState(State.WORLD); frame.defineScreen(); ! Global.setTransform("raster", frame.getRasterTransform()); ! // from "screen" to "raster" Global.setTransform("NDC", frame.getNDCTransform()); // from "raster" to "NDC" saveCurrentTransformAs("camera"); // from "world" to "camera" *************** *** 1098,1110 **** int swidth, int twidth) { ! try { ! MipMap.makeMipMap( ! picturename, ! texturename, ! MipMap.Mode.getNamed(swrap), ! MipMap.Mode.getNamed(twrap)); ! } catch (IOException e) { ! throw new IllegalArgumentException("Can't create texture: " + picturename); ! } } --- 1099,1114 ---- int swidth, int twidth) { ! try { ! MipMap.makeMipMap( ! picturename, ! texturename, ! MipMap.Mode.getNamed(swrap), ! MipMap.Mode.getNamed(twrap), ! filter, ! swidth, ! twidth); ! } catch (IOException e) { ! throw new IllegalArgumentException("Can't create texture: " + picturename); ! } } |
From: <ma...@us...> - 2003-07-03 17:57:55
|
Update of /cvsroot/jrman/drafts/src/org/jrman/maps In directory sc8-pr-cvs1:/tmp/cvs-serv17576/src/org/jrman/maps Modified Files: MipMap.java Log Message: Implemented correct filtering for mipmap creation. Index: MipMap.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/maps/MipMap.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MipMap.java 2 Jul 2003 07:03:31 -0000 1.2 --- MipMap.java 3 Jul 2003 17:57:52 -0000 1.3 *************** *** 36,40 **** --- 36,42 ---- import javax.imageio.ImageIO; + import org.jrman.options.Filter; import org.jrman.util.Calc; + import org.jrman.util.SamplesFilter; public class MipMap { *************** *** 124,150 **** } ! private static byte[] scaleDown(byte[] data, int size) { byte[] result = new byte[data.length / 4]; ! int halfSize = size / 2; ! for (int y = 0; y < halfSize; y++) ! for (int x = 0; x < halfSize; x++) { ! int halfOffset = (y * halfSize + x) * 4; ! int r = 0; ! int g = 0; ! int b = 0; ! int a = 0; ! for (int iy = 0; iy < 2; iy++) ! for (int ix = 0; ix < 2; ix++) { ! int offset = ((y * 2 + iy) * size + x * 2 + ix) * 4; ! r += (data[offset] & 0xff); ! g += (data[offset + 1] & 0xff); ! b += (data[offset + 2] & 0xff); ! a += (data[offset + 3] & 0xff); ! } ! result[halfOffset] = (byte) (r / 4); ! result[halfOffset + 1] = (byte) (g / 4); ! result[halfOffset + 2] = (byte) (b / 4); ! result[halfOffset + 3] = (byte) (a / 4); ! } return result; } --- 126,147 ---- } ! private static byte[] scaleDown( ! byte[] data, ! int size, ! Mode sMode, ! Mode tMode, ! SamplesFilter samplesFilter) { byte[] result = new byte[data.length / 4]; ! samplesFilter.doFilter( ! data, ! size, ! result, ! size / 2, ! size / 2, ! size / 2, ! 2, ! 2, ! sMode, ! tMode); return result; } *************** *** 154,158 **** String filename, Mode sMode, ! Mode tMode) throws IOException { int largerSide = Math.max(image.getWidth(), image.getHeight()); --- 151,156 ---- String filename, Mode sMode, ! Mode tMode, ! Filter filter) throws IOException { int largerSide = Math.max(image.getWidth(), image.getHeight()); *************** *** 180,186 **** data[offset + 3] = (byte) (argb >> 24); } while (size >= 1) { dos.write(data); ! data = scaleDown(data, size); size /= 2; } --- 178,192 ---- data[offset + 3] = (byte) (argb >> 24); } + SamplesFilter samplesFilter = filter.getSamplesFilter(); + int width = (int) Math.ceil(filter.getHorizontalWidth() * 2); + int height = (int) Math.ceil(filter.getVerticalWidth() * 2); + samplesFilter.init( + width, + height, + filter.getHorizontalWidth(), + filter.getVerticalWidth()); while (size >= 1) { dos.write(data); ! data = scaleDown(data, size, sMode, tMode, samplesFilter); size /= 2; } *************** *** 193,201 **** String filename, Mode sMode, ! Mode tMode) throws IOException { File file = new File(imageFilename); BufferedImage image = ImageIO.read(file); ! makeMipMap(image, filename, sMode, tMode); } --- 199,215 ---- String filename, Mode sMode, ! Mode tMode, ! String filterType, ! float sWidth, ! float tWidth) throws IOException { File file = new File(imageFilename); BufferedImage image = ImageIO.read(file); ! makeMipMap( ! image, ! filename, ! sMode, ! tMode, ! new Filter(Filter.Type.getNamed(filterType), sWidth, tWidth)); } |
From: <ma...@us...> - 2003-07-03 17:57:55
|
Update of /cvsroot/jrman/drafts/sampleData In directory sc8-pr-cvs1:/tmp/cvs-serv17576/sampleData Modified Files: TextureTest.rib DinningRoom.rib Log Message: Implemented correct filtering for mipmap creation. Index: TextureTest.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/TextureTest.rib,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TextureTest.rib 2 Jul 2003 07:03:31 -0000 1.4 --- TextureTest.rib 3 Jul 2003 17:57:52 -0000 1.5 *************** *** 9,25 **** Patch "bilinear" "P" [-1 -1 1 -1 0 1 0 -1 1 0 0 1] Patch "bilinear" "P" [0 0 1 1 0 1 0 1 1 1 1 1] ! Color 0 0 1 Patch "bilinear" "P" [-1 -1 2 -1 1 2 1 -1 2 1 1 2] WorldEnd ! MakeTexture "checkerboard.png" "checkerboard.txr" "periodic" "periodic" "x" 1 1 ! MakeTexture "mandrill.jpg" "mandril.txr" "periodic" "periodic" "x" 1 1 ! Format 512 384 1 Display "TextureTest" "framebuffer" "rgb" PixelSamples 4 4 Exposure 1 2.2 Projection "perspective" "fov" 90 Translate 0 0 1 WorldBegin LightSource "ambientlight" 1 "intensity" 1 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 --- 9,27 ---- Patch "bilinear" "P" [-1 -1 1 -1 0 1 0 -1 1 0 0 1] Patch "bilinear" "P" [0 0 1 1 0 1 0 1 1 1 1 1] ! Color 0 0 0 Patch "bilinear" "P" [-1 -1 2 -1 1 2 1 -1 2 1 1 2] WorldEnd ! MakeTexture "checkerboard.png" "checkerboard.txr" "periodic" "periodic" "gaussian" 2 2 ! MakeTexture "mandrill.jpg" "mandrill.txr" "periodic" "periodic" "gaussian" 2 2 ! Format 800 600 1 Display "TextureTest" "framebuffer" "rgb" PixelSamples 4 4 Exposure 1 2.2 + ScreenWindow -1.33 1.33 -1 1 Projection "perspective" "fov" 90 Translate 0 0 1 WorldBegin LightSource "ambientlight" 1 "intensity" 1 + ShadingRate .25 Surface "paintedplastic" Patch "bilinear" "P" [-1000 -5 0 Index: DinningRoom.rib =================================================================== RCS file: /cvsroot/jrman/drafts/sampleData/DinningRoom.rib,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** DinningRoom.rib 25 Jun 2003 17:14:05 -0000 1.12 --- DinningRoom.rib 3 Jul 2003 17:57:52 -0000 1.13 *************** *** 1,10 **** ! #MakeTexture "brick.jpg" "brick.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "woo12.jpg" "woo12.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "rattan.gif" "rattan.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "mosaic.gif" "mosaic.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "gradient.png" "gradient.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "marb2.gif" "marb2.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "marble7.gif" "marble7.txr" "periodic" "periodic" "x" 1 1 ! #MakeTexture "clay.gif" "clay.txr" "periodic" "periodic" "x" 1 1 Display "TableReflection.png" "file" "rgba" --- 1,10 ---- ! #MakeTexture "brick.jpg" "brick.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "woo12.jpg" "woo12.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "rattan.gif" "rattan.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "mosaic.gif" "mosaic.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "gradient.png" "gradient.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "marb2.gif" "marb2.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "marble7.gif" "marble7.txr" "periodic" "periodic" "gaussian" 2 2 ! #MakeTexture "clay.gif" "clay.txr" "periodic" "periodic" "gaussian" 2 2 Display "TableReflection.png" "file" "rgba" *************** *** 132,136 **** MakeTexture "TableReflection.png" "TableReflection.txr" ! "periodic" "periodic" "x" 1 1 Display "FloorReflection.png" "file" "rgba" --- 132,136 ---- MakeTexture "TableReflection.png" "TableReflection.txr" ! "periodic" "periodic" "gaussian" 2 2 Display "FloorReflection.png" "file" "rgba" *************** *** 262,266 **** WorldEnd MakeTexture "FloorReflection.png" "FloorReflection.txr" ! "periodic" "periodic" "x" 1 1 #Display "DinningRoom.png" "file" "rgba" --- 262,266 ---- WorldEnd MakeTexture "FloorReflection.png" "FloorReflection.txr" ! "periodic" "periodic" "gaussian" 2 2 #Display "DinningRoom.png" "file" "rgba" *************** *** 268,272 **** PixelSamples 4 4 Exposure 1 2.2 ! Format 800 600 1 Projection "perspective" "fov" [40] PixelFilter "gaussian" 2 2 --- 268,272 ---- PixelSamples 4 4 Exposure 1 2.2 ! Format 512 384 1 Projection "perspective" "fov" [40] PixelFilter "gaussian" 2 2 |
From: <ma...@us...> - 2003-07-02 07:03:34
|
Update of /cvsroot/jrman/drafts/src/org/jrman/parser In directory sc8-pr-cvs1:/tmp/cvs-serv6730/src/org/jrman/parser Modified Files: Parser.java Log Message: Fixed some bugs... Index: Parser.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/parser/Parser.java,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** Parser.java 12 Jun 2003 18:36:09 -0000 1.52 --- Parser.java 2 Jul 2003 07:03:31 -0000 1.53 *************** *** 411,414 **** --- 411,417 ---- public void worldBegin() { pushState(State.WORLD); + frame.defineScreen(); + Global.setTransform("raster", frame.getRasterTransform()); // from "screen" to "raster" + Global.setTransform("NDC", frame.getNDCTransform()); // from "raster" to "NDC" saveCurrentTransformAs("camera"); // from "world" to "camera" setIdentity(); *************** *** 518,527 **** frame.getFarClipping())); } - frame.defineScreen(); saveCurrentTransformAs("screen"); // from "camera" to "screen" setIdentity(); - Global.setTransform("raster", frame.getRasterTransform()); - // from "screen" to "raster" - Global.setTransform("NDC", frame.getNDCTransform()); // from "raster" to "NDC" } --- 521,526 ---- |
From: <ma...@us...> - 2003-07-02 07:03:34
|
Update of /cvsroot/jrman/drafts/src/org/jrman/maps In directory sc8-pr-cvs1:/tmp/cvs-serv6730/src/org/jrman/maps Modified Files: MipMap.java Log Message: Fixed some bugs... Index: MipMap.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/maps/MipMap.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** MipMap.java 12 Jun 2003 18:36:03 -0000 1.1 --- MipMap.java 2 Jul 2003 07:03:31 -0000 1.2 *************** *** 47,55 **** private static float[] d11 = new float[4]; ! private static float[] ll = new float[4]; ! private static float[] lh = new float[4]; ! private static Map map = new HashMap(); --- 47,55 ---- private static float[] d11 = new float[4]; ! private static float[] ll = new float[4]; ! private static float[] lh = new float[4]; ! private static Map map = new HashMap(); *************** *** 63,67 **** private int[] levelSizes; ! private Mode sMode; --- 63,67 ---- private int[] levelSizes; ! private Mode sMode; *************** *** 166,174 **** dos.writeByte(sMode.getCode()); dos.writeByte(tMode.getCode()); - BufferedImage squareImage = new BufferedImage(size, size, BufferedImage.TYPE_INT_ARGB); AffineTransform af = new AffineTransform(); af.scale((float) size / image.getWidth(), (float) size / image.getHeight()); AffineTransformOp afop = new AffineTransformOp(af, AffineTransformOp.TYPE_BILINEAR); ! afop.filter(image, squareImage); byte[] data = new byte[size * size * 4]; for (int y = 0; y < size; y++) --- 166,173 ---- dos.writeByte(sMode.getCode()); dos.writeByte(tMode.getCode()); AffineTransform af = new AffineTransform(); af.scale((float) size / image.getWidth(), (float) size / image.getHeight()); AffineTransformOp afop = new AffineTransformOp(af, AffineTransformOp.TYPE_BILINEAR); ! BufferedImage squareImage = afop.filter(image, null); byte[] data = new byte[size * size * 4]; for (int y = 0; y < size; y++) *************** *** 200,204 **** makeMipMap(image, filename, sMode, tMode); } ! public static MipMap getMipMap(String filename) { MipMap result = (MipMap) map.get(filename); --- 199,203 ---- makeMipMap(image, filename, sMode, tMode); } ! public static MipMap getMipMap(String filename) { MipMap result = (MipMap) map.get(filename); *************** *** 210,216 **** System.err.println("Can't load mipmap: " + filename); } ! return result; } ! public static void flushMipMap(String filename) { map.remove(filename); --- 209,215 ---- System.err.println("Can't load mipmap: " + filename); } ! return result; } ! public static void flushMipMap(String filename) { map.remove(filename); *************** *** 255,264 **** } ! private void getData( ! int s, ! int t, ! int level, ! int levelSize, ! float[] data) { if (s < 0 || s >= levelSize) { if (sMode == Mode.BLACK) { --- 254,258 ---- } ! private void getData(int s, int t, int level, int levelSize, float[] data) { if (s < 0 || s >= levelSize) { if (sMode == Mode.BLACK) { *************** *** 285,289 **** int levelSize = levelSizes[level]; float rs = s * levelSize; ! int is =(int) Math.floor(rs); rs -= is; float rt = t * levelSize; --- 279,283 ---- int levelSize = levelSizes[level]; float rs = s * levelSize; ! int is = (int) Math.floor(rs); rs -= is; float rt = t * levelSize; *************** *** 299,303 **** data[3] = Calc.interpolate(d00[3], d10[3], d01[3], d11[3], rs, rt); } ! private void getData(float s, float t, int level, float interp, float[] data) { getData(s, t, level, ll); --- 293,297 ---- data[3] = Calc.interpolate(d00[3], d10[3], d01[3], d11[3], rs, rt); } ! private void getData(float s, float t, int level, float interp, float[] data) { getData(s, t, level, ll); *************** *** 308,312 **** data[3] = Calc.interpolate(ll[3], lh[3], interp); } ! public void getData(float s, float t, float area, float[] data) { float d = (float) Math.sqrt(area); --- 302,306 ---- data[3] = Calc.interpolate(ll[3], lh[3], interp); } ! public void getData(float s, float t, float area, float[] data) { float d = (float) Math.sqrt(area); |
From: <ma...@us...> - 2003-07-02 07:03:34
|
Update of /cvsroot/jrman/drafts/src/org/jrman/render In directory sc8-pr-cvs1:/tmp/cvs-serv6730/src/org/jrman/render Modified Files: ImageStore.java Log Message: Fixed some bugs... Index: ImageStore.java =================================================================== RCS file: /cvsroot/jrman/drafts/src/org/jrman/render/ImageStore.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ImageStore.java 25 Jun 2003 17:14:04 -0000 1.2 --- ImageStore.java 2 Jul 2003 07:03:31 -0000 1.3 *************** *** 33,37 **** this.hSize = hSize; this.vSize = vSize; ! image = new BufferedImage(hSize, vSize, BufferedImage.TYPE_INT_ARGB); } --- 33,37 ---- this.hSize = hSize; this.vSize = vSize; ! image = new BufferedImage(hSize, vSize, BufferedImage.TYPE_INT_RGB); } |