DirectX-Forum - Beitragsübersicht -
ThemaSDX: Fog zu weit vorn?
Von Nico
E-Mail nico.schertler@gmx.de
Datum 21. Juli 2009 um 13:58:35
Frage Hallo!

Ich stelle bei mir folgendermaßen den Fog ein:
        D3DDevice.SetRenderState(RenderState.FogColor, &H0)
D3DDevice.SetRenderState(RenderState.FogEnable, True)
D3DDevice.SetRenderState(RenderState.FogVertexMode, FogMode.Linear)
D3DDevice.SetRenderState(RenderState.FogStart, 500)
D3DDevice.SetRenderState(RenderState.FogEnd, 1000)
D3DDevice.SetRenderState(RenderState.RangeFogEnable, True)
Er sollte also erst ab 500 anfangen, oder?
Ich beobachte ein Objekt, das ungefähr 100 Einheiten von der Kamera entfernt ist. Ohne eingeschalteten Fog ist ist korrekt sichtbar. Wenn Fog eingeschaltet ist, wird es schwarz. Warum?
Die zFarPlane liegt bei 3.000, das kann also nicht der Grund sein.

Nico
Antwort:
Von mdx
E-Mail mdx@vb-fun.de
Datum 22. Juli 2009 um 15:53:02
Antwort Deine FogColor ist schwarz, deswegen ist dein Objekt schwarz... was sonst nicht stimmt kann ich nicht sagen.
Als Color musst du integer übergeben, und single als start und end funktioniert einwandfrei...
Ich hab dir mal ne BaseEngine - Demo für PixelFog erstellt. EndFog verändert sich zwischen 1 und 5. Du kannst schön sehen wie die Box im Fog verschwindet und auftaucht.
Hier der source:
'# Title    : FFP PixelFog 
'# Author : Sascha Bajus
'# Created : 07/2009
'# Copyright © 2009 Sascha Bajus

Public Class Project : Inherits baseEngine

Private _box As Mesh '//Box Mesh
Private _start As Single = 1 '//Fog Start
Private _end As Single '//Fog End
Private _fogcolor As Color = Color.Red '//Fog Color

Public Sub New()

AddHandler dxRenderScene, AddressOf render
AddHandler dxKeyboardState, AddressOf keyboard
AddHandler dxMouseState, AddressOf mouse
AddHandler FormClosing, AddressOf closeApplication
'---------------------------------------------

If Me.dxEngine("SlimDX - BaseEngine - FFP Pixel Fog") = False Then Me.Close()

'//Create Box
_box = Mesh.CreateBox(dxDevice, 1, 1, 1)

'//Simple FFP Ligth
dxLights.EnableDirectionalLight = True
dxLights.EnableLighting = True
dxLights.EnableDefaultMaterial()
dxCamera.currentPosition = New Vector3(0, 1, -2.5)

'//Change BackbufferColor To FogColor
dxEngine.BackBufferColor = _fogcolor

'//FFP PixelFog Setup
With dxDevice
.SetRenderState(RenderState.FogEnable, True)
.SetRenderState(RenderState.FogColor, _fogcolor.ToArgb)
.SetRenderState(RenderState.RangeFogEnable, True)
.SetRenderState(RenderState.FogTableMode, FogMode.Linear)
.SetRenderState(RenderState.FogStart, _start)
End With
End Sub

#Region "## render ##"
Private Sub render()

'//Calc New FogEnd Value (1 - 5)
_end = CSng(dxGametime.Timefading(400, 0.01) * 4 + 1)
'//Set New EndValue To FFP
dxDevice.SetRenderState(RenderState.FogEnd, _end)
'//Box rotation
dxtransformWorld = dxTransform.RotationY(0.1, 400)
'//Draw Box
_box.DrawSubset(0)
'//OSD
dx2DText.drawFPS(vbCrLf & "FogEnd Value: " & _end.ToString) '#render FPS
End Sub
#End Region

#Region "## Inputdevices ##"
Private Sub keyboard()
'#Anwendung über ESC beenden
If dxEngine.KeyPressed(Key.Escape) Then Me.Close()
End Sub
Private Sub mouse()
End Sub
#End Region

#Region "## Exit Application ##"
Private Sub closeApplication(ByVal sender As Object, ByVal e As FormClosingEventArgs)
dxEngine.closeBaseEngine()
If Not _box Is Nothing Then _box.Dispose()
End
End Sub
#End Region
End Class
[ Antwort schreiben | Zurück zum DirectX-Forum | Forum-Hilfe ]
Antworten
SDX: Fog zu weit vorn? - Nico 21. Juli 2009 um 13:58:35
Re: Fog zu weit vorn? - mdx 21. Juli 2009 um 16:34:01
Re: Fog zu weit vorn? - Nico 21. Juli 2009 um 16:56:33
Re: Fog zu weit vorn? - mdx 21. Juli 2009 um 17:56:54
Re: Fog zu weit vorn? - Nico 21. Juli 2009 um 22:38:06
BaseEngine FFP PixelFog - Linear - mdx 22. Juli 2009 um 15:53:02
Re: BaseEngine FFP PixelFog - Linear - Nico 22. Juli 2009 um 16:00:35

Ihre Antwort
(Nick-)Name   Wichtige Informationen zur Namensangabe
E-Mail (opt.)  Wichtige Informationen zur Angabe einer eMail-Adresse
Thema   Wichtige Informationen zur Angabe eines Themas
Betrifft (IDE)  SlimDX
Ihre Antwort
Smilies
Mehr...
FettKursivUnterstrichen   Übersicht der Tipp-KürzelÜbersicht der Projekt-KürzelÜbersicht der Bücher-Kürzel 
Homepage
Titel
Root-Smilies              
             
             
[ Zurück zum DirectX-Forum | Forum-Archiv | Forum-Hilfe | Chat ]

Zum Seitenanfang

Startseite | VB-/VBA-Tipps | Projekte | Tutorials | API-Referenz | Komponenten | Bücherecke | Gewinnspiele | VB.Net | .Net-Forum | DirectX | DirectX-Forum | Chat | Ausschreibungen | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Sonntag, 13. Dezember 2015