Cubemapping Problem
Übersicht

![]() |
NightPhoenixBetreff: Cubemapping Problem |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo liebe HobbyCoder und an alle die es mal werden wollen! ![]() Ich bin mit meiner kleinen Insel schon weiter voran geschritten und hab mich mal an Cubemapping für das Wasser versucht. Ich habe mich an das Example für SetCubeface unter Help gehalten. Jedoch sind die Spiegelungen jetzt verkehrt herum (d.h. Wenn ein Boot im Wasser schwimmt sieht man es als Spiegelbild im Wasser genauso wie es da eben schwimmt. Zur besseren Anschauung meines Problems habe ich ml einige Screenshots auf meinen Server hochgeladen: http://marinext.ma.funpic.de/i...itzcc1.JPG http://marinext.ma.funpic.de/i...itzcc2.JPG http://marinext.ma.funpic.de/i...itzcc3.JPG http://marinext.ma.funpic.de/i...itzcc4.JPG http://marinext.ma.funpic.de/i...itzcc5.JPG Der Code: Graphics3D 1024,768,32,1 SetBuffer BackBuffer() light=CreateLight() TurnEntity light,45,45,0 PositionEntity light,0,10000,0 GravPivo=CreatePivot(); Pivot für die Gravitation (momentan ausgeschalten) cam=CreateCamera(GravPivo) CameraFogMode cam,1 CameraRange cam,1,26000 CameraFogRange cam,10000,25000 CameraFogColor cam,100,150,255 CameraClsColor cam,100,150,255 RotateEntity cam,0,0,0 PositionEntity cam,0,0,0 EntityRadius cam,50 EntityType cam,1 MoveEntity cam,17500,1400,17500 cube_cam=CreateCamera() HideEntity cube_cam Isle=LoadTerrain ("IsleTerrain.bmp") ScaleEntity Isle,100,2500,100 TerrainDetail Isle,5000,False IsleTexture=LoadTexture ("TerrainTex1.bmp") EntityTexture Isle,IsleTexture EntityFX Isle,16 ScaleTexture IsleTexture,500,500 EntityType Isle,2 water=CreatePlane() PositionEntity water,0,1200,0 EntityAlpha water,0.7 Himmel=CreateSphere(20) ScaleEntity Himmel,70000,70000,8000 RotateEntity Himmel,90,0,0 EntityFX Himmel,16 HT=LoadTexture("Wolken1.bmp") EntityTexture Himmel,HT ScaleTexture HT,0.1,0.1 MoveEntity Himmel,14000,0,0 Feuerzeug=LoadMesh("lighter/Feuerzeug.3ds") MoveEntity Feuerzeug,16000,1200,16500 EntityFX Feuerzeug,16 Schiff=LoadMesh("Navy_Destroyer.3ds") MoveEntity Schiff,11000,1180,12500 ScaleEntity Schiff,10,10,10 tex=CreateTexture(512,512,1+128+256); erstellen der Cubemode Texture EntityTexture water,tex; legen der Cubemode-Textur auf das Wasser cube_mode=1; Spiegelungsverhalten Collisions (1,2,2,3) Collisions (2,1,2,3) While Not KeyHit(1) RotateTexture HT,MilliSecs()*0.00005 MoveEntity water,0,Sin(MilliSecs()*0.02)*0.07,0 MoveEntity Schiff,0,Sin(MilliSecs()*0.02)*0.07,0 MoveEntity GravPivo,0,0,0; Pivot wird durch Gravitation heruntergezogen und die Kamera dadurch mit -> damit Grav. nicht an Richtung der Kamera gebunden ist ; >>Kamera Kontrolle<< ; Maussteuerung RotateEntity cam,EntityPitch(cam)+MouseYSpeed(),EntityYaw(cam)-MouseXSpeed(),0 MoveMouse 512,384 ; Bewegt die Kamera mit den Kursortasten Vorwärts, Rückwärts, etc. If KeyDown(200)=True Then MoveEntity cam,0,0,10.2 If KeyDown(208)=True Then MoveEntity cam,0,0,-10.2 If KeyDown(205)=True Then MoveEntity cam,10.2,0,0 If KeyDown(203)=True Then MoveEntity cam,-10.2,0,0 ; Wenn M gedrückt wird ändert sich SetCubeMode um +1 If KeyHit(50) cube_mode=cube_mode+1 If cube_mode=4 Then cube_mode=1 SetCubeMode tex,cube_mode EndIf HideEntity cam UpdateCubemap(tex,cube_cam,water) ShowEntity cam UpdateWorld RenderWorld Flip Wend ;Die Function hab ich aus der Hilfe für SetCubeFace kopiert: Function UpdateCubemap(tex,camera,entity) tex_sz=TextureWidth(tex) ; Show the camera we have specifically created for updating the cubemap ShowEntity camera ; Hide entity that will have cubemap applied to it. This is so we can get cubemap from its position, without it blocking the view HideEntity entity ; Position camera where the entity is - this is where we will be rendering views from for cubemap PositionEntity camera,EntityX#(entity),EntityY#(entity),EntityZ#(entity) CameraClsMode camera,False,True ; Set the camera's viewport so it is the same size as our texture - so we can fit entire screen contents into texture CameraViewport camera,0,0,tex_sz,tex_sz ; Update cubemap ; do left view SetCubeFace tex,0 RotateEntity camera,0,90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; do forward view SetCubeFace tex,1 RotateEntity camera,0,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; do right view SetCubeFace tex,2 RotateEntity camera,0,-90,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; do backward view SetCubeFace tex,3 RotateEntity camera,0,180,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; do up view SetCubeFace tex,4 RotateEntity camera,-90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; do down view SetCubeFace tex,5 RotateEntity camera,90,0,0 RenderWorld CopyRect 0,0,tex_sz,tex_sz,0,0,BackBuffer(),TextureBuffer(tex) ; Show entity again ShowEntity entity ; Hide the cubemap camera HideEntity camera End Function ClearWorld End Alle Objekte und Texturen für den Code: http://marinext.ma.funpic.de/i...ityIsland/ Aus Platzgründen für den Server wurde die Datei TerrainTex1.BMP als .JPG abgespeichert... bitte convertet es doch mit Paint oder so wieder in BMP für volle funktionalität Kamera: Maussteuerung SetCubeMode ändern mit M Bewegen: Pfeiltasten Kollision funktioniert seit dem Cubemapping nicht mehr. komisch... Ich hoffe ihr könnt mir Tipps oder gar die Lösung für das Problem sagen. Ich weiß echt nicht mehr weiter. Danke! MfG. ![]() |
||
- Zuletzt bearbeitet von NightPhoenix am Sa, Sep 16, 2006 12:24, insgesamt einmal bearbeitet
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Frau hast du eh nicht selber gemodelt... | ||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß ^^
Ich meinte ja auch das könnte jeder selbst machen. Kannst du mir trotzdem helfen? |
||
![]() |
Lunatix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mh...
Du hättest deine frage normal posten können, vlt. hätte ich dir dann geholfen.... Sag mal spinnst du eigendlich ?? Wenn du deine (meiner und ein paar anderer meinung nach) pornografischen 3d modelle , die bei C4D standard ist, unbedingt posten willst, dann such die ein anders forum!! Wahrscheinlci hwarst du eben auch dieser komische Sebi der was programmiert haben wollte O.o @Mods : Pls trash >:O |
||
[size=9]Pro|gram|mier|er: Ein Organismus, der Koffein in Software umwandelt.
Geben Sie eine beliebige 11-stellige Primzahl ein, um fortzusetzen... |
![]() |
BlitzcoderNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst dich keine nicht eigene frau einfach als Belohnung aussetzten. | ||
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________ |°°°°°°°°°°°°°°||'""|""\__,_ |______________ ||__ |__|__ |) |(@) |(@)"""**|(@)(@)****|(@) |
![]() |
NightPhoenix |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Frau wurde mit MakeHuman gemacht.
Ich hab sie jetzt rausgenommen... Sorry. ![]() Wusste nicht dass das hier veboten ist. |
||
- Zuletzt bearbeitet von NightPhoenix am Sa, Sep 16, 2006 12:30, insgesamt einmal bearbeitet
![]() |
d-bug |
![]() Antworten mit Zitat ![]() |
---|---|---|
~GESCHLOSSEN~ @NightPhoenix Ein bisschen kürzer das nächste mal vorallem mit weniger unaussagekräftigen Bildern! ...und benutze die Codetags! @BlitzCoder + Junkprogger Ist ja gut jetzt hier. Kein Grund ihn gleich runter zu putzen. Alles im Allem voll daneben gegangen cheers |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group