游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1487|回复: 0

关于在3D模型上贴纹理 请教大侠们

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2008-7-14 13:49:00 | 显示全部楼层 |阅读模式
我初学3D游戏开发 载入3D模型之后 显示了出来 有立体感 我贴上纹理之后 就变成了2D的平面的 这个是什么原因? 代码如下:
创建

        ID3DXBuffer* mtrlBuffer = 0;
        D3DXLoadMeshFromX(inFileName.c_str(),D3DXMESH_MANAGED,in_pDevice,NULL,&mtrlBuffer,
                0,&m_numMtrls,&m_pMesh);
        if(mtrlBuffer != 0 && m_numMtrls != 0)
        {
                D3DXMATERIAL* mtrls = (D3DXMATERIAL*)mtrlBuffer->GetBufferPointer();
                for(int i = 0; i < m_numMtrls;i++)
                {
                        mtrls.MatD3D.Ambient = mtrls.MatD3D.Diffuse;
                        m_pMtrls.push_back(mtrls.MatD3D);
                        if(mtrls.pTextureFilename != 0)
                        {
                                IDirect3DTexture9* tex = 0;
                                D3DXCreateTextureFromFile(in_pDevice,"F:\\Programme\\代码\\个人\\Snooker\\data\\pic\\Sphere\\15Ball\\1.dds",&tex);
                                m_pTextures.push_back(tex);
                        }
                        else
                                m_pTextures.push_back(0);
                }
        }

        m_pMesh->CloneMeshFVF(

                m_pMesh->GetOptions(), // 使用与源模型同样的选项

                D3DFVF_XYZ | D3DFVF_NORMAL,// 指定克隆的FVF

                in_pDevice,

                &clone

                );
        D3DXComputeNormals( clone, NULL );

        mtrlBuffer->Release();

渲染:
        for(i = 0; i < m_numMtrls;i++)
        {
                in_pDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_SELECTARG1 );
                IDirect3DTexture9* tex = 0;
                in_pDevice->SetMaterial(&m_pMtrls);
                D3DXCreateTextureFromFile(in_pDevice,"F:\\Programme\\代码\\个人\\Snooker\\data\\pic\\Sphere\\15Ball\\15.dds",&tex);
                in_pDevice->SetTexture(0,tex);
                clone->DrawSubset(i);
        }
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 23:58

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表