Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Anonymous
unregistriert
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
// Texturen setzen hResult = m_pD3DDevice->SetTexture(0, pRenderset->getTextureDiffuse()); hResult = m_pD3DDevice->SetTexture(1, pRenderset->getTextureBump()); hResult = m_pD3DDevice->SetTexture(2, pRenderset->getTextureSpecular()); // Set the color operations and arguments to prepare for // bump mapping. // Stage 0: The base texture hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 ); hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); hResult = m_pD3DDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 1 ); // Stage 1: The bump map - Use luminance for this example. hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 1 ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_BUMPENVMAPLUMINANCE); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_TEXTURE ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_CURRENT ); // Stage 2: A specular environment map hResult = m_pD3DDevice->SetTextureStageState( 2, D3DTSS_TEXCOORDINDEX, 0 ); hResult = m_pD3DDevice->SetTextureStageState( 2, D3DTSS_COLOROP, D3DTOP_ADD ); hResult = m_pD3DDevice->SetTextureStageState( 2, D3DTSS_COLORARG1, D3DTA_TEXTURE ); hResult = m_pD3DDevice->SetTextureStageState( 2, D3DTSS_COLORARG2, D3DTA_CURRENT ); // Set the bump mapping matrix. // // Note These calls rely on the following inline shortcut function: // inline DWORD F2DW( FLOAT f ) { return *((DWORD*)&f); } hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVMAT00, float2DW(1.0f) ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVMAT01, float2DW(0.0f) ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVMAT10, float2DW(0.0f) ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVMAT11, float2DW(1.0f) ); // Set luminance controls. This is only needed when using // a bump map that contains luminance, and when the // D3DTOP_BUMPENVMAPLUMINANCE texture blending operation is // being used. // // Note These calls rely on the following inline shortcut function: // inline DWORD F2DW( FLOAT f ) { return *((DWORD*)&f); } hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVLSCALE, float2DW(0.5f) ); hResult = m_pD3DDevice->SetTextureStageState( 1, D3DTSS_BUMPENVLOFFSET, float2DW(0.0f) ); |
Quellcode |
|
1 2 3 |
hResult = m_pD3DDevice->SetTexture(0, getTextureDiffuse()); hResult = m_pD3DDevice->SetTexture(1, getTextureBump()); hResult = m_pD3DDevice->SetTexture(2, getTextureSpecular()); |
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 |
struct SVertex { CVector vPos; CVector vNormal; DWORD dwColor; CVector2D vTexPos; CVector2D vTexPos2; CVector2D vTexPos3; }; #define ENGINE_FVF (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1 | D3DFVF_TEX2 | D3DFVF_TEX3) |
C-/C++-Quelltext |
|
1 |
#define ENGINE_FVF (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX3) |
Anonymous
unregistriert
Anonymous
unregistriert
Zitat
Deaktivier mal evnMapping in dem Beispiel und dann weißt du wo dein Fehler liegt....
Quellcode |
|
1 |
SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_BUMPENVMAPLUMINANCE); |
Quellcode |
|
1 |
SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3); |
Quellcode |
|
1 |
SetTextureStageState( 1, D3DTSS_BUMPENVMAT00, qCUtils::float2DW(1.0f) ); |
C-/C++-Quelltext |
|
1 |
SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3);
|
Anonymous
unregistriert
Anonymous
unregistriert
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// Texturen setzen m_pD3DDevice->SetTexture(0, pRenderset->getTextureDiffuse()); // Diffuse Map m_pD3DDevice->SetTexture(1, pRenderset->getTextureBump()); // Normal Map // Stage 0: Normale Textur m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); m_pD3DDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); // Stage 1: Normal Map per DOTPRODUCT3 m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLOROP, D3DTOP_DOTPRODUCT3); m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLORARG1, D3DTA_CURRENT ); m_pD3DDevice->SetTextureStageState( 1, D3DTSS_COLORARG2, D3DTA_TEXTURE ); |
Werbeanzeige