|
|
这是DX9帮助文件中d3d教程教程5中的一段代码(DirectX Graphics->Direct3D9->Tutorials and Samples->Tutorials->Tutorial 5: Using Texture Maps->Step 3 - Rendering the Scene
):
// Setup texture. Using textures introduces the texture stage states, which
// govern how textures get blended together (in the case of multiple
// textures) and lighting information. In this case, you are modulating
// (blending) your texture with the diffuse color of the vertices.
g_pd3dDevice->SetTexture( 0, g_pTexture );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_DISABLE );
#ifdef SHOW_HOW_TO_USE_TCI
// Note: To use Direct3D texture coordinate generation, use the stage state
// D3DTSS_TEXCOORDINDEX, as shown below. In this example, you are using
// the position of the vertex in camera space to generate texture
// coordinates. The tex coord index (TCI) parameters are passed into a
// texture transform, which is a 4x4 matrix that transforms the x,y,z
// TCI coordinates into tu, tv texture coordinates.
// In this example, the texture matrix is set up to
// transform the texture from (-1,+1) position coordinates to (0,1)
// texture coordinate space:
// tu = 0.5*x + 0.5
// tv = -0.5*y + 0.5
D3DXMATRIXA16 mat;
mat._11 = 0.25f; mat._12 = 0.00f; mat._13 = 0.00f; mat._14 = 0.00f;
mat._21 = 0.00f; mat._22 =-0.25f; mat._23 = 0.00f; mat._24 = 0.00f;
mat._31 = 0.00f; mat._32 = 0.00f; mat._33 = 1.00f; mat._34 = 0.00f;
mat._41 = 0.50f; mat._42 = 0.50f; mat._43 = 0.00f; mat._44 = 1.00f;
g_pd3dDevice->SetTransform( D3DTS_TEXTURE0, &mat );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXTURETRANSFORMFLAGS,
D3DTTFF_COUNT2 );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX,
D3DTSS_TCI_CAMERASPACEPOSITION );
#endif
提问:
1.为何要进行transform the texture from (-1,+1) position coordinates to (0,1) 操作?什么时侯需要进行这种转换工作?上文所指的 (-1,+1) position coordinates 是什么东西?找了一上午的资料,还是没搞明白。
2.请问各位有没有纹理、多重纹理、纹理混合方面的资料啊,书上和帮助文件里基本上都用简短的代码来讲一些概念。大家有没有好一点的这方面的资料啊,从昨天郁闷到现在,我现在相当郁闷哪。
如能赐教,本人感激不尽。 |
|