From 4d3d72eba275a18be8f05aabdfbfe9f47e133d12 Mon Sep 17 00:00:00 2001 From: Joshua Sigona Date: Mon, 8 Nov 2021 02:04:53 +0900 Subject: [PATCH] Translucency implementation. --- src/sig/Block.java | 48 ++------------ src/sig/Panel.java | 123 +++++++++++++++++++++++++++++++++++ src/sig/SigRenderer.java | 21 ++++-- src/sig/Texture.java | 5 +- src/sig/utils/DrawUtils.java | 71 ++++++++++++++++---- textures.png | Bin 191012 -> 191233 bytes 6 files changed, 208 insertions(+), 60 deletions(-) diff --git a/src/sig/Block.java b/src/sig/Block.java index 4085c40..a828b18 100644 --- a/src/sig/Block.java +++ b/src/sig/Block.java @@ -20,58 +20,22 @@ public class Block { } public void updateFaces() { if (SigRenderer.blockGrid.containsKey(pos.x+"_"+(pos.y+1)+"_"+pos.z)) { - neighbors.UP=true; - if (block.triangles.get(Texture.TOP).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).block.triangles.get(Texture.BOTTOM).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).neighbors.DOWN=true; - } else - if (block.triangles.get(Texture.TOP).tex.hasTransparency&&!SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).block.triangles.get(Texture.BOTTOM).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).neighbors.DOWN=false; - } + neighbors.UP=SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).neighbors.DOWN=block.triangles.get(Texture.TOP).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).block.triangles.get(Texture.BOTTOM).tex.hasTransparency&&block.triangles.get(Texture.TOP).tex.hasTranslucency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y+1)+"_"+pos.z).block.triangles.get(Texture.BOTTOM).tex.hasTranslucency; } if (SigRenderer.blockGrid.containsKey(pos.x+"_"+(pos.y-1)+"_"+pos.z)) { - neighbors.DOWN=true; - if (block.triangles.get(Texture.BOTTOM).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).block.triangles.get(Texture.TOP).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).neighbors.UP=true; - } else - if (block.triangles.get(Texture.BOTTOM).tex.hasTransparency&&!SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).block.triangles.get(Texture.TOP).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).neighbors.UP=false; - } + neighbors.DOWN=SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).neighbors.UP=block.triangles.get(Texture.BOTTOM).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).block.triangles.get(Texture.TOP).tex.hasTransparency&&block.triangles.get(Texture.BOTTOM).tex.hasTranslucency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y-1)+"_"+pos.z).block.triangles.get(Texture.TOP).tex.hasTranslucency; } if (SigRenderer.blockGrid.containsKey((pos.x-1)+"_"+(pos.y)+"_"+pos.z)) { - neighbors.LEFT=true; - if (block.triangles.get(Texture.WEST).tex.hasTransparency==SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.EAST).tex.hasTransparency) { - SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).neighbors.RIGHT=true; - } else - if (block.triangles.get(Texture.WEST).tex.hasTransparency&&!SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.EAST).tex.hasTransparency) { - SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).neighbors.RIGHT=false; - } + neighbors.LEFT=SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).neighbors.RIGHT=block.triangles.get(Texture.WEST).tex.hasTransparency==SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.EAST).tex.hasTransparency&&block.triangles.get(Texture.WEST).tex.hasTranslucency==SigRenderer.blockGrid.get((pos.x-1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.EAST).tex.hasTranslucency; } if (SigRenderer.blockGrid.containsKey((pos.x+1)+"_"+(pos.y)+"_"+pos.z)) { - neighbors.RIGHT=true; - if (block.triangles.get(Texture.EAST).tex.hasTransparency==SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.WEST).tex.hasTransparency) { - SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).neighbors.LEFT=true; - } else - if (block.triangles.get(Texture.EAST).tex.hasTransparency&&!SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.WEST).tex.hasTransparency) { - SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).neighbors.LEFT=false; - } + neighbors.RIGHT=SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).neighbors.LEFT=block.triangles.get(Texture.EAST).tex.hasTransparency==SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.WEST).tex.hasTransparency&&block.triangles.get(Texture.EAST).tex.hasTranslucency==SigRenderer.blockGrid.get((pos.x+1)+"_"+(pos.y)+"_"+pos.z).block.triangles.get(Texture.WEST).tex.hasTranslucency; } if (SigRenderer.blockGrid.containsKey(pos.x+"_"+(pos.y)+"_"+(pos.z+1))) { - neighbors.FORWARD=true; - if (block.triangles.get(Texture.SOUTH).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).block.triangles.get(Texture.NORTH).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).neighbors.BACKWARD=true; - } else - if (block.triangles.get(Texture.SOUTH).tex.hasTransparency&&!SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).block.triangles.get(Texture.NORTH).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).neighbors.BACKWARD=false; - } + neighbors.FORWARD=SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).neighbors.BACKWARD=block.triangles.get(Texture.SOUTH).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).block.triangles.get(Texture.NORTH).tex.hasTransparency&&block.triangles.get(Texture.SOUTH).tex.hasTranslucency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z+1)).block.triangles.get(Texture.NORTH).tex.hasTranslucency; } if (SigRenderer.blockGrid.containsKey(pos.x+"_"+(pos.y)+"_"+(pos.z-1))) { - neighbors.BACKWARD=true; - if (block.triangles.get(Texture.NORTH).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).block.triangles.get(Texture.SOUTH).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).neighbors.FORWARD=true; - } else - if (block.triangles.get(Texture.NORTH).tex.hasTransparency&&!SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).block.triangles.get(Texture.SOUTH).tex.hasTransparency) { - SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).neighbors.FORWARD=false; - } + neighbors.BACKWARD=SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).neighbors.FORWARD=block.triangles.get(Texture.NORTH).tex.hasTransparency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).block.triangles.get(Texture.SOUTH).tex.hasTransparency&&block.triangles.get(Texture.NORTH).tex.hasTranslucency==SigRenderer.blockGrid.get(pos.x+"_"+(pos.y)+"_"+(pos.z-1)).block.triangles.get(Texture.SOUTH).tex.hasTranslucency; } } @Override diff --git a/src/sig/Panel.java b/src/sig/Panel.java index a6e5ed8..5937510 100644 --- a/src/sig/Panel.java +++ b/src/sig/Panel.java @@ -10,13 +10,17 @@ import java.awt.Image; import java.awt.image.MemoryImageSource; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; +import java.util.LinkedList; import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; import java.awt.image.ColorModel; import java.awt.GraphicsEnvironment; import java.awt.GraphicsConfiguration; import java.awt.Toolkit; +import java.util.Queue; public class Panel extends JPanel implements Runnable { long startTime = System.nanoTime(); @@ -75,6 +79,7 @@ public class Panel extends JPanel implements Runnable { } SigRenderer.depthBuffer = new float[width*height]; SigRenderer.depthBuffer_tri = new Triangle[width*height]; + SigRenderer.translucencyBuffer = new boolean[width*height]; } /** * Do your draws in here !! @@ -95,6 +100,7 @@ public class Panel extends JPanel implements Runnable { p[ (int)(x*SigRenderer.RESOLUTION) + (int)(y*SigRenderer.RESOLUTION) * width] = 0; SigRenderer.depthBuffer[x+y*width]=0; SigRenderer.depthBuffer_tri[x+y*width]=null; + SigRenderer.translucencyBuffer[x+y*width]=false; } } @@ -234,14 +240,131 @@ public class Panel extends JPanel implements Runnable { } } renderNeeded=true; + boolean translucencyDetected=false; for (int x=0;x)currentRender, new Comparator() { + @Override + public int compare(Triangle t1, Triangle t2) { + float z1=(t1.A.z+t1.B.z+t1.C.z)/3f; + float z2=(t2.A.z+t2.B.z+t2.C.z)/3f; + return (z1 triList = new ArrayList<>(); + triList.add(t); + int newTriangles=1; + for (int pl=0;pl<4;pl++) { + int trisToAdd=0; + while (newTriangles>0) { + clipped = new Triangle[]{new Triangle(),new Triangle()}; + Triangle test = triList.remove(0); + newTriangles--; + switch (pl) { + case 0:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,0,0),new Vector(0,1,0),test,clipped);}break; + case 1:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,getHeight()-1f,0),new Vector(0,-1,0),test,clipped);}break; + case 2:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,0,0),new Vector(1,0,0),test,clipped);}break; + case 3:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(getWidth()-1f,0,0),new Vector(-1,0,0),test,clipped);}break; + } + for (int w=0;w>16,tt,DrawUtils.IGNORE_TRANSLUCENT_RENDERING); + } else { + DrawUtils.FillTriangle(p,(int)tt.A.x,(int)tt.A.y,(int)tt.B.x,(int)tt.B.y,(int)tt.C.x,(int)tt.C.y,tt.getColor()); + } + if (SigRenderer.WIREFRAME) { + DrawUtils.DrawTriangle(p,(int)tt.A.x,(int)tt.A.y,(int)tt.B.x,(int)tt.B.y,(int)tt.C.x,(int)tt.C.y,Color.WHITE.getRGB()); + } + } + if (SigRenderer.PROFILING) { + totalTime+=System.nanoTime()-startTime2; + } + } + for (Triangle t : currentRender) { + Triangle[] clipped = new Triangle[]{new Triangle(),new Triangle()}; + List triList = new ArrayList<>(); + triList.add(t); + int newTriangles=1; + for (int pl=0;pl<4;pl++) { + int trisToAdd=0; + while (newTriangles>0) { + clipped = new Triangle[]{new Triangle(),new Triangle()}; + Triangle test = triList.remove(0); + newTriangles--; + switch (pl) { + case 0:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,0,0),new Vector(0,1,0),test,clipped);}break; + case 1:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,getHeight()-1f,0),new Vector(0,-1,0),test,clipped);}break; + case 2:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(0,0,0),new Vector(1,0,0),test,clipped);}break; + case 3:{trisToAdd = Triangle.ClipAgainstPlane(new Vector(getWidth()-1f,0,0),new Vector(-1,0,0),test,clipped);}break; + } + for (int w=0;w>16,tt,DrawUtils.TRANSLUCENT_ONLY_RENDERING); + } else { + DrawUtils.FillTriangle(p,(int)tt.A.x,(int)tt.A.y,(int)tt.B.x,(int)tt.B.y,(int)tt.C.x,(int)tt.C.y,tt.getColor()); + } + if (SigRenderer.WIREFRAME) { + DrawUtils.DrawTriangle(p,(int)tt.A.x,(int)tt.A.y,(int)tt.B.x,(int)tt.B.y,(int)tt.C.x,(int)tt.C.y,Color.WHITE.getRGB()); + } + } + if (SigRenderer.PROFILING) { + totalTime+=System.nanoTime()-startTime2; + } + } + + for (int x=0;x blockTextures = new HashMap(); @@ -117,8 +120,12 @@ public class SigRenderer implements KeyListener,MouseListener,MouseMotionListene } for (int x=0;x<64;x++) { - for (int y=0;y<5;y++) { - addBlock(new Vector(x,y,16),BlockType.GLASS); + for (int y=1;y<5;y++) { + if (x%8>2&&x%8<6&&y>1&&y<4) { + addBlock(new Vector(x,y,16),BlockType.GLASS); + } else { + addBlock(new Vector(x,y,16),BlockType.ICE); + } } } @@ -171,15 +178,19 @@ public class SigRenderer implements KeyListener,MouseListener,MouseMotionListene WritableRaster r = img.getRaster(); for (TextureType tt : TextureType.values()) { int[] pixelData = new int[tt.texWidth*BLOCK_WIDTH*tt.texHeight*BLOCK_HEIGHT]; - Texture tex = new Texture(pixelData,tt.texWidth*BLOCK_WIDTH,tt.texHeight*BLOCK_HEIGHT); + Texture tex = new Texture(pixelData,tt.texWidth*BLOCK_WIDTH,tt.texHeight*BLOCK_HEIGHT,tt); int startX=tt.texX*BLOCK_WIDTH; int startY=tt.texY*BLOCK_HEIGHT; for (int x=0;x0) { + tex.hasTranslucency=true; + } else { + tex.hasTransparency=true; + } } } } diff --git a/src/sig/Texture.java b/src/sig/Texture.java index f69b6b2..e5fe24c 100644 --- a/src/sig/Texture.java +++ b/src/sig/Texture.java @@ -14,6 +14,8 @@ public class Texture{ int width; int height; public boolean hasTransparency=false; + public boolean hasTranslucency=false; + TextureType type; public Texture(File f) { try { @@ -41,10 +43,11 @@ public class Texture{ public static final int TOP = 8; public static final int BOTTOM = 10; - public Texture(int[] tex,int width,int height) { + public Texture(int[] tex,int width,int height,TextureType type) { this.tex=tex; this.width=width; this.height=height; + this.type=type; } public int getColor(float u,float v,float mult) { diff --git a/src/sig/utils/DrawUtils.java b/src/sig/utils/DrawUtils.java index 324563f..03ce004 100644 --- a/src/sig/utils/DrawUtils.java +++ b/src/sig/utils/DrawUtils.java @@ -9,16 +9,27 @@ import sig.Texture; import sig.Triangle; public class DrawUtils { + final public static int NORMAL_RENDERING = 0; + final public static int IGNORE_TRANSLUCENT_RENDERING = 1; + final public static int TRANSLUCENT_ONLY_RENDERING = 2; static void drawLine(int[] canvas,int sx,int ex,int ny,int col) { for (int i=sx;i<=ex;i++) { Draw(canvas,i,ny,col); } } + public static void TexturedTriangle(int[] canvas, + int x1, int y1, float u1,float v1,float w1, + int x2, int y2, float u2,float v2,float w2, + int x3, int y3, float u3,float v3,float w3, + Texture texture, int colorMult,Triangle ref) { + TexturedTriangle(canvas,x1,y1,u1,v1,w1,x2,y2,u2,v2,w2,x3,y3,u3,v3,w3,texture,colorMult,ref,NORMAL_RENDERING); + } public static void TexturedTriangle(int[] canvas, int x1, int y1, float u1,float v1,float w1, int x2, int y2, float u2,float v2,float w2, int x3, int y3, float u3,float v3,float w3, - Texture texture, int colorMult,Triangle ref + Texture texture, int colorMult,Triangle ref, + int rendering_state ) { if (y2>>24)!=0) { - Draw(canvas,j,i,col); - } - if (((col&0xFF000000)>>>24)==255) { - SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; - SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + if (((col&0xFF000000)>>>24)!=255) { + if (rendering_state==TRANSLUCENT_ONLY_RENDERING|| + rendering_state==NORMAL_RENDERING) { + Draw(canvas,j,i,col); + SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; + SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + SigRenderer.translucencyBuffer[i*SigRenderer.SCREEN_WIDTH+j] = true; + } + } else { + if (rendering_state!=TRANSLUCENT_ONLY_RENDERING) { + Draw(canvas,j,i,col); + SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; + SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + } + } } } t+=tstep; @@ -147,11 +168,23 @@ public class DrawUtils { } int col = texture.getColor(tex_u/tex_w,tex_v/tex_w,colorMult/255f); if (((col&0xFF000000)>>>24)!=0) { - Draw(canvas,j,i,col); - } - if (((col&0xFF000000)>>>24)==255) { - SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; - SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + if (((col&0xFF000000)>>>24)!=255) { + if (rendering_state==TRANSLUCENT_ONLY_RENDERING|| + rendering_state==NORMAL_RENDERING) { + Draw(canvas,j,i,col); + SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; + if (rendering_state!=TRANSLUCENT_ONLY_RENDERING) { + SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + } + SigRenderer.translucencyBuffer[i*SigRenderer.SCREEN_WIDTH+j] = true; + } + } else { + if (rendering_state!=TRANSLUCENT_ONLY_RENDERING) { + Draw(canvas,j,i,col); + SigRenderer.depthBuffer[i*SigRenderer.SCREEN_WIDTH+j] = tex_w; + SigRenderer.depthBuffer_tri[i*SigRenderer.SCREEN_WIDTH+j] = ref.unmodifiedTri; + } + } } } t+=tstep; @@ -350,7 +383,21 @@ public class DrawUtils { public static void Draw(int[] canvas,int x,int y,int col) { if (x>=0&&y>=0&&x>>24; + if (alpha>0&&alpha<255) { + float ratio = alpha/255f; + int prev_col = canvas[x+y*SigRenderer.SCREEN_WIDTH]; + int prev_r=(prev_col&0xFF),prev_g=(prev_col&0xFF00)>>>8,prev_b=(prev_col&0xFF0000)>>>16; + int r=(col&0xFF),g=(col&0xFF00)>>>8,b=(col&0xFF0000)>>>16; + + int new_r=(int)(ratio*r+(1-ratio)*prev_r); + int new_g=(int)(ratio*g+(1-ratio)*prev_g); + int new_b=(int)(ratio*b+(1-ratio)*prev_b); + + canvas[x+y*SigRenderer.SCREEN_WIDTH]=new_r+(new_g<<8)+(new_b<<16)+(col&0xFF000000); + } else { + canvas[x+y*SigRenderer.SCREEN_WIDTH]=col; + } } } } diff --git a/textures.png b/textures.png index 0f357de18a5b563ed85976fa0f80f54a9661b83f..622ea37eb429d143a5a371db3e4ffed386206f39 100644 GIT binary patch delta 23255 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 Y1rQ|-KsWA~gOYZKl6C>Nl6C@bbTOQEw*UYD