normalmap+uvmap+alphamap
Übersicht

martin_moehlerBetreff: normalmap+uvmap+alphamap |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Einen wunderschönen guten Abend,
ich habe mir zum Testen einen kleines Haus erstellt, eine uv-Textur drübergezogen danach noch eine normalmap. Als ich jetzt aber das Fenster mit ner alphamap durchsichtig machen wollte, hats nich funktioniert. Code: [AUSKLAPPEN] EntityTexture Haus, Normalmap,0, 0 ; layer 1 EntityTexture Haus, Texture, 0, 1 ; layer 2 EntityTexture Haus, Alpha,0,2 ; layer 3 TextureBlend Normalmap, 4 ; dot3 bumpmapping TextureBlend Texture, 5 ; lightmapping Es klappt nur entweder normalmapping oder alphamapping. Kann mir irgendjemand weiterhelfen? Im voraus schon den besten Dank |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das geht nicht.
Wenn du verschiedene Texturen brauchst, mach verschiedene Surfaces so dass du das via Brushes oder manuellem Multitexturing erledigen kannst. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du kannst im Haus die Fenster in einzelne Objekte umwandeln
und die z.B. Glas nennen . Dann mit LoadAnimMesh das Haus laden und die Hirachie durch gehen und EntityAlpha benutzen bei denen die im Namen mit Glas anfangen . |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
oder halt verschiedene Materialien (-> verschiedene Surfaces)
dann am besten deiner Textur ein "alpha_" oder so vorne rein packen, dann kannst du sogar mit den texturefilter arbeiten. Ansonsten kannst du material settings nur auf B3D Modellen machen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Markus2 hat Folgendes geschrieben: mit LoadAnimMesh das Haus laden und die Hirachie durch gehen
. wie kann ich die Hirachie eines Meshes auslesen?? In der BB-Hilfe steht dazu nix. Oder: Dreamora hat Folgendes geschrieben: mach verschiedene Surfaces so dass du das via Brushes oder manuellem Multitexturing erledigen kannst.
wie kann ich ein Surface genau auf mein Fenster legen? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Indem das Fenster eine eigene Textur hat.
Eigene Textur erzeugt automatisch ein eigenes Surface Und was die Hierarchie durchgehen betrifft: Dafür sind die Child Befehle bei den Entity Befehlen. Also FindChild etc, denn ein B3D Objekt hat immer genau einen "Head Node" wo alles andere dran hängt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
klappt FindChild auch in 3ds oder nur b3d? | ||
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hat sich erledigt ![]() Ich hab mir den b3d exporter downgeloaded und hab es so gemacht wie du es vorgeschlagen hast. Code: [AUSKLAPPEN] Global Haus = LoadAnimMesh("Haus.b3d") ; mesh
Normalmap = LoadTexture("Haus2bump.bmp", 1) ; normalmap Texture = LoadTexture("Haus2.bmp", 1) ; tetxure EntityAlpha FindChild (Haus,"Fenster"),.5 ;Alphawert des Fensters EntityFX Haus, 2 ; vertexcolor EntityTexture Haus, Normalmap,0, 0 ; layer 1 EntityTexture Haus, Texture, 0, 1 ; layer 2 TextureBlend Normalmap, 4 ; dot3 bumpmapping TextureBlend Texture, 5 Hat allese geklappt! Vielen Dank ![]() |
||
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Mein Problem hat sich leider wieder etwas erweitert:
Zum Abschluss wollte ich mein Haus nun mit einem Schatten an einer Plane verpassen. Dafür wollte ich das DevilShadowSystem.bb benutzen, was auch nach etwas rumprobieren geklappt hat, jedoch ist mein Haus nun nicht mehr farbig. Normalmapping funktioniert, aber nur in Schwarz-Weiß! Auch funktioniert alles (sogar farbig), wenn ich RenderModus 2 benutze, allerdings ist das der Debugmodus Code: [AUSKLAPPEN] ;Use Render() insted of RenderWorld()
;Don't ever use RenderWorld. Not even in the cubemap rendering proccess! ;Render(mode = 0, anim_tween# ;mode 0 = shadows and all other stuff disabled. ;mode 1 = shadows and all other stuff enabled. ;mode 2 = debug mode; volumes visible only. (For advanced users only!) ;anim_tween# is the animation step for UpdateWorld ;=> UpodateWorld(anim_tween#) Mein Code: Code: [AUSKLAPPEN] Graphics3D 640, 480, 32, 2
SetBuffer BackBuffer() AppTitle "Dot3 Bumpmapping" Camera = CreateCamera() PositionEntity Camera, 0, 0, -2 Include "DevilShadowSystem.bb" Include "UserInterface.bb" Include "ShadowVolumes.bb" Global Haus = LoadAnimShadowMesh("Haus.b3d") ; AnimMesh um über FindChildren das Fenster zu finden Normalmap = LoadTexture("Hausbump.bmp", 1) ; normalmap Texture = LoadTexture("Haus.bmp", 1) ; tetxure EntityAlpha FindChild (Haus,"Fenster"),.5 EntityFX Haus, 2 ; vertexcolor EntityTexture Haus, Normalmap,0, 0 ; layer 1 EntityTexture Haus, Texture, 0, 1 ; layer 2 TextureBlend Normalmap, 4 ; dot3 bumpmapping TextureBlend Texture, 5 ; lightmapping plane = CreatePlane() MoveEntity plane,0,0,10 EntityColor plane,50,50,100 TurnEntity plane,-90,0,0 ScaleEntity Haus,.1,.1,.1 Light = CreateLight(1) Light2 = CreateLight(1,FindChild (Haus,"Fenster")) light3 = CreateLight(1) MoveEntity light3,-10,0,-10 s=CreateSphere(5,light2) MoveEntity Light2 ,0,0,-.5 ; Schatten InitShadows(Camera) SetShadowLight(Light3) SetShadowMesh(plane, False) While Not KeyDown(1) PositionEntity Light,(MouseX()-320)/100.0, (MouseY()-240)/-100.0,-1.5 TurnEntity Haus, 0, 1, 0 UpdateDot3Normals(Haus, Light) Render(1) Flip Wend Function UpdateDot3Normals(Mesh, Light) Local LX#, LY#, LZ#, LNX#, LNY#, LNZ# Local S, Surface, V, VX#, VY#, VZ#, VNX#, VNY#, VNZ# Local Length#, DotProduct#, VRed, VGreen, VBlue ; get the lightcoords LX# = EntityX#(Light, 1) LY# = EntityY#(Light, 1) LZ# = EntityZ#(Light, 1) For S = 1 To CountSurfaces(Mesh) Surface = GetSurface(Mesh, S) For V = 0 To CountVertices(Surface)-1 ; get vertexcoords VX# = VertexX#(Surface, V) VY# = VertexY#(Surface, V) VZ# = VertexZ#(Surface, V) ; get vertexnormalcoords VNX# = VertexNX#(Surface, V) VNY# = VertexNY#(Surface, V) VNZ# = VertexNZ#(Surface, V) ; transform vertexcoords into worldcoords TFormPoint VX#, VY#, VZ#, Mesh, 0 VX# = TFormedX#() VY# = TFormedY#() VZ# = TFormedZ#() ; transform vertexnormalcoords into worldnormalcoords TFormNormal VNX#, VNY#, VNZ#, Mesh, 0 VNX# = TFormedX#() VNY# = TFormedY#() VNZ# = TFormedZ#() ; calculate a vector between vertex and light LNX# = LX#-VX# LNY# = LY#-VY# LNZ# = LZ#-VZ# ; normalize this vector Length# = Sqr#(LNX#^2.0+LNY#^2.0+LNZ#^2.0) LNX# = LNX#/Length# LNY# = LNY#/Length# LNZ# = LNZ#/Length# ; calculate the dotproduct between vertexnormal and the vector between light and vertex DotProduct# = VNX#*LNX#+VNY#*LNY#+VNZ#*LNZ# ; if the light behind the mesh If DotProduct# < 0.0 Then DotProduct# = 0.0 ; calculate the new vertexcolor VRed = ( LNX#*DotProduct#+1.0)*127.0 VGreen = ( LNY#*DotProduct#+1.0)*127.0 VBlue = (-LNZ#*DotProduct#+1.0)*127.0 ; update vertexcolor VertexColor Surface, V, VRed, VGreen, VBlue Next Next End Function Bitte helft mir ich stehe vor einem Rätsel!! Vielen Dank ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du wirst nicht alles kombinieren können und das macht auch keinen Sinn.
Wenn du soviele moderne (und hardware hungrige!) Technik nutzt, wäre es sinnvoller du nutzt direkt eine DX9 Engine mit Schatten und Bumpmapping. Mit DX7 wird das nicht gehen und auch auf keiner DX7 Karte laufen (alleine schon das hinzufügen der Stencil Schatten wird die mindestanforderung drastisch nach oben schrauben) Vor allem nutzt man keine stencil schatten für statische objekte, dafür gibt es lightmaps, die kosten primär dich zeit beim vorausberechnen, sind nachher aber umsonst ![]() Sollte dein Ziel etwas SplinterCell ähnliches sein: Auch dafür braucht man keine Stencil Schatten, SC hat das erst in der neuensten Version mit "echtem" Schatten, das war vorher alles Lightmapping. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group