Problem mit Cubemapping
Übersicht

![]() |
pixelshooterBetreff: Problem mit Cubemapping |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab ne Textur mit Flag 128 gemacht, und eigentlich sollte sich doch die Umgebung spiegeln, aber das ding wird nur mehr oder weniger schwarz:
Code: [AUSKLAPPEN] Graphics3D 800,600 pivot=CreatePivot() PositionEntity pivot,0,1.5,0 camera=CreateCamera( pivot ) CameraClsColor camera,0,0,255 CameraRange camera,0.01,1000 MoveEntity camera,0,0,-500 light=CreateLight(2) light=CreateLight(2) PositionEntity light,0,-200,0 ;robo=LoadAnimMesh( "xx.b3d" ) ;PositionEntity robo,0,0,0 x = CreateTexture(1024,1024,128) SetBuffer TextureBuffer(x) ClsColor 0,0,0 Cls SetBuffer BackBuffer() robp = CreateCube() ScaleEntity robp,100,100,100 PositionEntity robp,0,0,300 EntityTexture robp,x robi = CreateCube() ScaleEntity robi,100,100,100 PositionEntity robi,0,0,-300 EntityColor robi,0,255,0 robi = CreateCube() ScaleEntity robi,100,100,100 PositionEntity robi,300,0,-300 EntityColor robi,0,255,0 robi = CreateCube() ScaleEntity robi,100,100,100 PositionEntity robi,-300,0,-300 EntityColor robi,0,255,0 robi = CreateCube() ScaleEntity robi,500,500,500 PositionEntity robi,0,0,0 EntityColor robi,255,0,0 EntityFX robi,16 While Not KeyHit(1) If KeyDown(200) MoveEntity camera,0,0,10 ElseIf KeyDown(208) MoveEntity camera,0,0,-10 EndIf If KeyDown(203) TurnEntity pivot,0,-3,0 If KeyDown(205) TurnEntity pivot,0,3,0 If KeyDown(30) TranslateEntity camera,0,0,.1 If KeyDown(44) TranslateEntity camera,0,0,-.1 UpdateWorld RenderWorld Flip Wend End |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hast du dir schonmal andere Threads durchgelesen um in etwa zu wissen wie das Cubemapping funzt?
Ich sehe in deinem Code etwas wenig durch... das einzige was ich sagen kann ist dass dabei garantiert kein Cubemapping rauskommt.. Grobe Veränderungen sind notwendig.. mach dir nix drauß ^^ Ich habs nach ner Woche erst hingekriegt... ![]() Es geht ja darum dass auf einem Objekt eine Texture aufgetragen wird welche die Umgebung spiegeln soll... Diese Texture ist eigentlich ein Blick durch eine zweite Kamera die sich dreht in welche Richtung man halt schaut. Ich kann in deinem Code keine zweite Cam gefunden... Wenn du sie dazumachst dann muss diese dann versteckt werden damit deine Graka quasi nur die eine HauptKamera benutzt die du zum bewegen brauchst (HideEntity CubeCam).. dann vor der Spiegelung muss die CubeCam wieder erscheinen.. nach der Spiegelung in der Schleife wieder verschwinden. Außerdem muss dann noch ne Steuerung der CubeCam rein... Wenn Hauptkamera dahin dreht dann CubeCam da hin dreht. Erstmal dieser grobe Ansatz von mir ![]() MfG. NightPhoenix |
||
![]() |
skey-z |
![]() Antworten mit Zitat ![]() |
---|---|---|
schua dir mal in der onlinehilfe die befehle zum Cubemapping an www.blitzbase.de , da findest du nen code mit dem du arbeiten kannst und wie nightphönix schon sagte, hier im Forum wurde es schon zig mal diskutiert, also einmal die suche bemühen und du bekommst mind 10 threads dazu | ||
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz BAC#57: 2. Platz |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei hat aber schon mal sn code, definitiv ohne cams gefunzt. Und was is der Unterschied zu flag 64?
Werde in zukunft mehr die Suche benutzen, nur kam nix sinnvolles raus. Der Code in der Onlinehilfe geht nicht, weil bei mir der "media" ordner fehlt. und wenn ich leere Texturen nehme, gehts auch nich |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
du MUSST die sicht der kamera mit negativen y wert abhängig vom objekt rendern, da das cubemapping sonst nicht funktionieren kann. Cubemapping zeigt am jeweiligen Pixel den jeweiligen Punkt der Textur abhängig von position und winkel an. Dies gestattet nur eine Kamera
Kurz gefasst: cubemapping (als spiegelung) ohne cam ist unmöglich |
||
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. |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
pixelshooter hat Folgendes geschrieben: Der Code in der Onlinehilfe geht nicht, weil bei mir der "media" ordner fehlt. und wenn ich leere Texturen nehme, gehts auch nich
Der Media Ordner bezieht sich auf den Ordner im Samples Verzeichnis, der mit der Installation mit kommt. Dort sind alle nötigen Dateien drin. Und wie oben erwähnt: Spiegelung setzt eine "Sicht" voraus und das setzt zwingend eine Kamera voraus. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
StepTiger, erinnerst du dich noch daran wie du mir damals bei meinem Cubemapping anfängen geholfen hast? ![]() Ich hab mir heute deinen Beispielcode nochmal angeschaut und hab festgestellt dass da was falsch läuft... Das habe ich nicht im Code gesehen, sondern am Ergebnis: (habe die Objekte mal bissl verändert) An dem Bild gibts nix auszusetzen... So sollte das sein. Das graue etwas da oben ist eine Sphere, das graue etwas weiter unten ist die Sphere gespiegelt. Ich verändere die Kameraposition... (Also zum einfacher verstehen: Ein Quadrat hat 4 Kanten ich war an Kante rechts und begebe mich mit meiner Kamera jetz zu Kante Unten... ![]() Jetzt das Problem... Im grünen Kreis (ja ein Kreis soll das sein ![]() Nochma das Selbe... falsche Spiegelung. Jedem dürfte in den letzten 2 Bildern aufgefallen sein, dass die Spiegelung an der falschen Stelle ist... unnatürlich halt) Weiß jemand warum die Spiegelung falsch verläuft? würde mal auf verdrehte CubeFaces tippen, oder? MfG. NightPhoenix P.S.: Bitte steinigt mich nicht weil ich hier Microsoft (!) Paint verwendet habe!!! .. peinlich ![]() ![]() |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
hast recht! eigentlich kein ding! dreh die kameras rum und es dürfte funktionieren.
kamera 1 nach links kamera 2 nach vorn kamera 3 nach rechts kamera 4 nach hinten kamera 5 nach oben kamera 6 nach unten dürfte gehen ![]() |
||
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. |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
MS Paint ist ein simples aber dennoch effizientes Programm. Warum also peinlich ? | ||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nur Spaß BladeRunner ![]() @StepTiger, willst du die Kameras umstellen oder soll ich mich mal daran machen? ^^ Is ja dein Beispielcode MfG. NightPhoenix |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach nur ^^ | ||
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. |
![]() |
pixelshooter |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei flag 64 kommt bei mir nur geflimmer raus (natürlich jhab ich die cams wieder weg gemacht)
ist es eigentlich schneller mehrere cams zu machen oder eine zu drehen? |
||
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eine zu drehen... sonst musst du 6 Cams verstecken und wieder sichtbar machen.... außerdem geht das glaube garnicht mit mehreren, oder? ^^
Außerdem: Wozu brauchst du Flag 64? das ist Spherical Mapping... Das hat nix mit Cubemapping zu tun... Du brauchst Flag 128+256 MfG. |
||
![]() |
StepTiger |
![]() Antworten mit Zitat ![]() |
---|---|---|
mehrere sind wesentlich schneller, jedoch erreichst du dann auch nur eine niedrigere Auflösung.
Mehrere cams müssen nur ein mal gerendert werden ![]() Das hide und showentity macht nix aus. Dafür solltest du dich eventuell mit dem Befehl CameraViewport auseinandersetzen. |
||
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. |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
StepTiger....
Das mit den Kameraeinstellungen krieg ich echt nicht hin... Habs mal versucht, aber das geht irgendwie nicht... Das blöde Ding bleibt da, oder wird noch schlimmer versetzt Hier mal die Richtungen: Code: [AUSKLAPPEN] TurnEntity cubecam(0),0,90,0 TurnEntity cubecam(1),0,0,0 TurnEntity cubecam(2),0,-90,0 TurnEntity cubecam(3),0,-180,0 TurnEntity cubecam(4),-90,0,0 TurnEntity cubecam(5),90,0,0 Ist da was falsch? |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi,
wo wir gerade beim Thema sind möchte ich auch mal ein kleines Cubemapping-Problem von meiner Seite ansprechen: Wenn ich mich unter der Wasseroberfläche befinde, soll die Wassertexture mir alles, was darüber ist, zeigen. Code: [AUSKLAPPEN] PositionEntity cube_cam,EntityX(t\water)-EntityX(camera),EntityY(camera)-2,EntityZ(camera)
SetCubeFace t\tex,0 RotateEntity cube_cam,0,-90,180 RenderWorld CopyRect 0,0,WATER_ReflectionDetails,WATER_ReflectionDetails,0,0,BackBuffer(),TextureBuffer(t\tex) SetCubeFace t\tex,1 RotateEntity cube_cam,0,0,180 RenderWorld CopyRect 0,0,WATER_ReflectionDetails,WATER_ReflectionDetails,0,0,BackBuffer(),TextureBuffer(t\tex) SetCubeFace t\tex,2 RotateEntity cube_cam,0,90,180 RenderWorld CopyRect 0,0,WATER_ReflectionDetails,WATER_ReflectionDetails,0,0,BackBuffer(),TextureBuffer(t\tex) SetCubeFace t\tex,3 RotateEntity cube_cam,0,180,180 RenderWorld CopyRect 0,0,WATER_ReflectionDetails,WATER_ReflectionDetails,0,0,BackBuffer(),TextureBuffer(t\tex) SetCubeFace t\tex,5 RotateEntity cube_cam,-90,0,180 RenderWorld CopyRect 0,0,WATER_ReflectionDetails,WATER_ReflectionDetails,0,0,BackBuffer(),TextureBuffer(t\tex) Bloß wird irgendwie alles spiegelverkehrt angezeigt. Kennt jemand eine Möglichkeit, alles umgekehrt zu rendern? Mfg TheProgrammer |
||
aktuelles Projekt: The last day of human being |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich würde das prompt mit keinem Cubemapping lösen, sondern mit EntityAlpha 0.7 bei einer dunkelblauen Textur für das Wasser. Damit hast du Echtzeit Transparenz im wahrsten Sinne ![]() Du musst halt nur sobald deine Figur unter Wasser ist das Cubemapping ausschalten und ein Alpha wert setzen, Wellenbewegungen und blauer Nebel für Unterwasser. So würde ich es machen ![]() Allerdings hast du dann ja keine Verzerrung durch die Bewegungen.. mmh.. naja =) MfG. |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Verzerrungen hätte ich da schon gerne dringehabt. ![]() |
||
aktuelles Projekt: The last day of human being |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst dir ja mal die Cubemap Demo im Samples Ordner anschauen... .da gibt es auch Unterwasser Cubemapping
Finde den Code nur extrem unübersichtlich ![]() MfG. |
||
![]() |
TheProgrammer |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm, ich finde da keine Cubemapping Demo. Nur ne Wasser-demo, aber ohne Cubemapping. Kannst du mir mal bitte genau beschreiben, wo sich das befinden soll? ^^ | ||
aktuelles Projekt: The last day of human being |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group