DirectX怎么给一个球贴贴图呢?
时间:2011-10-23
来源:互联网
用了这样的一个方法来给创建的球体赋uv坐标
C/C++ code
这样遇到的问题是第一条经线u是0,最后一条是1,转一周贴图都没错,但是从最后一条经线到第一条的部分因为uv又成了1-0,所以把整张贴图又压缩到了那一小条。
不知道用这个方法怎么才能解决这个问题,如果这种给uv的方法不行的话又该怎么做才能正确的给一个球贴图呢?
C/C++ code
if(FAILED(D3DXCreateSphere(m_pd3dDevice, 3.96, 24, 25, &g_sphere, NULL))) return S_FALSE; if (FAILED(g_sphere->CloneMeshFVF(D3DXMESH_SYSTEMMEM, FVF_VERTEX,m_pd3dDevice,&g_sun))) { return false ; } VERTEX* pVerts ; if (SUCCEEDED(g_sun->LockVertexBuffer(0, (void **)&pVerts))) { // Get vertex count int numVerts = g_sun->GetNumVertices() ; for (int i = 0; i < numVerts; ++i) { // Calculates texture coordinates if(pVerts->norm.y >=0) { if(pVerts->norm.x >=0) pVerts->tu = (asinf(pVerts->norm.y/sqrt( pow(pVerts->norm.x,2) + pow(pVerts->norm.y,2) )) / D3DX_PI )/2 ; else pVerts->tu = -1.0f*(asinf(pVerts->norm.y/sqrt( pow(pVerts->norm.x,2) + pow(pVerts->norm.y,2) )) / D3DX_PI )/2 +0.5 ; pVerts->tv = asinf(pVerts->norm.z) / D3DX_PI + 0.5f ; } else { if(pVerts->norm.x >=0) pVerts->tu = (asinf(pVerts->norm.y/sqrt( pow(pVerts->norm.x,2) + pow(pVerts->norm.y,2) )) / D3DX_PI )/2 ; else pVerts->tu = -1.0f*(asinf(pVerts->norm.y/sqrt( pow(pVerts->norm.x,2) + pow(pVerts->norm.y,2) )) / D3DX_PI )/2 +0.5 ; pVerts->tv = asinf(pVerts->norm.z) / D3DX_PI + 0.5f ; } ++pVerts ; } // Unlock the vertex buffer g_sun->UnlockVertexBuffer() ; }
这样遇到的问题是第一条经线u是0,最后一条是1,转一周贴图都没错,但是从最后一条经线到第一条的部分因为uv又成了1-0,所以把整张贴图又压缩到了那一小条。
不知道用这个方法怎么才能解决这个问题,如果这种给uv的方法不行的话又该怎么做才能正确的给一个球贴图呢?
作者: guyu91047 发布时间: 2011-10-23
我原来写过opengl的版本,你参考一下:
http://blog.csdn.net/dizuo/article/details/5135440
http://blog.csdn.net/dizuo/article/details/5135440
作者: dizuo 发布时间: 2011-10-23
引用 1 楼 dizuo 的回复:
我原来写过opengl的版本,你参考一下:
http://blog.csdn.net/dizuo/article/details/5135440
我原来写过opengl的版本,你参考一下:
http://blog.csdn.net/dizuo/article/details/5135440
这样就得完全自己写画球的方法了啊...我只是想在现有的基础上修改UV就好...
或者说还有什么办法能给DirectX创建的球贴纹理呢...
作者: guyu91047 发布时间: 2011-10-23
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28