farbanaglyph, komplementärfarben
Übersicht

![]() |
StepTigerBetreff: farbanaglyph, komplementärfarben |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo!
Also Komplementärfarben sind ja immer genau das gegenübergesetzte der eigentlichen farbe! beispiel: rot - cyan grün - magenta blau - gelb Wofür ich das brauche? Für ein richtiges 3d. Ein 3d, was man mit einer 3d Brille auch richtig real sieht. Hab zwar ein system dafür, aber das klappt nicht so recht. Das macht entweder den Rot Kanal oder den Blau-grün Kanal. Und so soll es ja nun nicht sein! also das hier: Code: [AUSKLAPPEN] Graphics 800,600,32,2
SeedRnd MilliSecs() Type s Field x,y,wid,hih,r,g,b End Type Dim oldcol(GraphicsWidth(),GraphicsHeight()) Dim colr(GraphicsWidth(),GraphicsHeight()) Dim colg(GraphicsWidth(),GraphicsHeight()) Dim colb(GraphicsWidth(),GraphicsHeight()) For x=1 To 20 s.s=New s s\x=Rnd(GraphicsWidth()-100) s\y=Rnd(GraphicsHeight()-100) s\wid=Rnd(50)+50 s\hih=Rnd(50)+50 s\r=Rnd(255) s\g=Rnd(255) s\b=Rnd(255) Next fpstime#=MilliSecs() While Not KeyDown(1) SetBuffer BackBuffer() Cls For d.s=Each s Color d\r,d\g,d\b Rect d\x,d\y,d\wid,d\hih Next If KeyHit(2) Then d3=1-d3 If d3 Then pic3d(10,5,.5,1) For d.s=Each s Color d\r,d\g,d\b Rect d\x,d\y,d\wid,d\hih Next fps#=((fps#*19)+(1000./(MilliSecs()-fpstime#)))/20 fpstime#=MilliSecs() Text 1,1,fps# Flip Delay 10 Wend Function pic3d(dif,dify,alph#,red) LockBuffer BackBuffer() For x=1 To GraphicsWidth() For y=1 To GraphicsHeight() oldcol(x,y)=ReadPixelFast(x,y,BackBuffer()) Next Next If red For x=1 To GraphicsWidth() For y=1 To GraphicsHeight() If x+dif<GraphicsWidth() And y-dif>0 r=oldcol(x+dif,y-dify) Shr 16 And 255 Shl 0 g=oldcol(x+dif,y-dify) Shr 8 And 255 Shl 0 b=oldcol(x+dif,y-dify) Shr 0 And 255 Shl 0 tolr=oldcol(x,y) Shr 16 And 255 Shl 0 tolg=oldcol(x,y) Shr 8 And 255 Shl 0 tolb=oldcol(x,y) Shr 0 And 255 Shl 0 nr=r*alph#+tolr*(1.-alph#) ng=0+tolg*(1.-alph#) nb=0+tolb*(1.-alph#) col=nb Or (ng Shl 8) Or (nr Shl 16) Or ($FF000000) oldcol(x,y)= colr(x,y)=nr EndIf If x-dif>0 And y+dif<GraphicsHeight() r=oldcol(x-dif,y+dify) Shr 16 And 255 Shl 0 g=oldcol(x-dif,y+dify) Shr 8 And 255 Shl 0 b=oldcol(x-dif,y+dify) Shr 0 And 255 Shl 0 nr=0+tolr*(1.-alph#) ng=r+tolg*(1.-alph#) nb=r+tolb*(1.-alph#) colg(x,y)=ng colb(x,y)=nb oldcol(x,y)=nb Or (ng Shl 8) Or (nr Shl 16) Or ($FF000000) EndIf WritePixelFast x,y,oldcol(x,y) Next Next EndIf UnlockBuffer BackBuffer() End Function Ist zwar gerade 2d aber da es ja kategorisch eher zu 3d gehört mach ich es zu 3d. |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Steve0 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du hast da was vergessen. Bei mir kommt immer ein "Expecting expression" Fehler.
Code: [AUSKLAPPEN] ...
col=nb Or (ng Shl 8) Or (nr Shl 16) Or ($FF000000) oldcol(x,y)= colr(x,y)=nr ... |
||
Pixelgenaue 2D SingleSurface Engine!!! |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
huch!
Das muss natürlich heißen oldcol(x,y)=col |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
was ist daran falsch?
ich versteh es einfach nicht |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
JUHU!
Also ich hab einen einfacheren Weg gefunden. Ich nehme einen Texturebuffer, auf den ich das bild setze, was ich gerade sehe. Nehme ein rot bild, ein grün blau bild und setze diese auf 3 leinwände (r,rgb,gb) r und gb sind teiltransparent und rgb ist undurchlässig. Das ganze passiert über eine "3d-kamera" ist nur noch eine rot-grünblau brille nötig. Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
pic=LoadTexture("E:\DSCF0281.bmp") alpha#=.4 versch#=5 screenr=CreateCube() ScaleEntity screenr,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screenr,255,0,0 PositionEntity screenr,-versch#*4,-versch#*3,-1 EntityAlpha screenr,alpha# EntityFX screenr,1 EntityTexture screenr,pic screen=CreateCube() ScaleEntity screen,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screen,255,255,255 EntityAlpha screen,1 EntityFX screen,1 EntityTexture screen,pic screengb=CreateCube() ScaleEntity screengb,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screengb,0,255,255 PositionEntity screengb,versch#*4,versch#*3,-2 EntityAlpha screengb,alpha# EntityFX screengb,1 EntityTexture screengb,pic cam=CreateCamera() PositionEntity cam,0,0,-GraphicsWidth()/2+versch#*4 While Not KeyDown(1) SetBuffer BackBuffer() If KeyDown(200) Then TranslateEntity cam,0,0,.1 If KeyDown(208) Then TranslateEntity cam,0,0,-.1 If KeyDown(203) Then TranslateEntity cam,.1,0,0 If KeyDown(205) Then TranslateEntity cam,-.1,0,0 PointEntity cam,screen UpdateWorld RenderWorld Text 1,1,EntityX(cam)+" "+EntityZ(cam) Flip Delay 1 Wend edit: verbesserte version (steuerung sind die pfeiltasten und num 1 / 4 ) Code: [AUSKLAPPEN] Graphics3D 800,600,32,2
pic=LoadTexture("E:\DSCF0281.bmp") alpha#=.4 versch#=2.5 screenr=CreateCube() ScaleEntity screenr,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screenr,255,0,0 PositionEntity screenr,-versch#*4,-versch#*3,-1 EntityAlpha screenr,alpha# EntityFX screenr,1 EntityTexture screenr,pic screen=CreateCube() ScaleEntity screen,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screen,255,255,255 EntityAlpha screen,1 EntityFX screen,1 EntityTexture screen,pic screengb=CreateCube() ScaleEntity screengb,GraphicsWidth()/2,GraphicsHeight()/2,0.01 EntityColor screengb,0,255,255 EntityAlpha screengb,alpha# EntityFX screengb,1 EntityTexture screengb,pic cam=CreateCamera() PositionEntity cam,0,0,-GraphicsWidth()/2+versch#*4 While Not KeyDown(1) SetBuffer BackBuffer() If KeyDown(200) Then TranslateEntity cam,0,0,.1 If KeyDown(208) Then TranslateEntity cam,0,0,-.1 If KeyDown(203) Then TranslateEntity cam,.1,0,0 If KeyDown(205) Then TranslateEntity cam,-.1,0,0 If KeyDown(75) Then versch#=versch#+.1:PositionEntity cam,0,0,-GraphicsWidth()/2+versch#*4 If KeyDown(79) Then versch#=versch#-.1:PositionEntity cam,0,0,-GraphicsWidth()/2+versch#*4 PositionEntity screengb,versch#*4,versch#*3,-2 PositionEntity screenr,-versch#*4,-versch#*3,-1 PointEntity cam,screen UpdateWorld RenderWorld Text 1,1,EntityX(cam)+" "+EntityZ(cam) Flip Delay 1 Wend |
||
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer: AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t Gewinner: BP Code Compo #2 Π=3.141592653589793238...<--- und das aus dem kopf ![]() Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group