游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2039|回复: 4

请问3ds max插件纹理坐标的问题

[复制链接]

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-9-28 18:52:00 | 显示全部楼层 |阅读模式
我发现,单纯在导出顶点位置是到出mesh->tVerts[ i ],得到的纹理坐标有些问题,不知道怎样才能顶点坐标与顶点纹理坐标相对应地导出(一个顶点位置接着这个顶点的纹理坐标)?

p.s.:我一个模型只是用一张纹理

8

主题

239

帖子

239

积分

中级会员

Rank: 3Rank: 3

积分
239
发表于 2005-9-28 22:21:00 | 显示全部楼层

Re:请问3ds max插件纹理坐标的问题

    void get_v_n3_t2(Mesh& mesh, long faceIndex, long pointIndex, _v_n3_t2* pV, Matrix3& m3){
      long vindex = mesh.faces[faceIndex].getVert(pointIndex);
      Point3 v = mesh.verts[vindex];
      float tmpz = v.y; v.y = v.z; v.z = tmpz;
      
      Point3 n;
      getNormal(mesh, faceIndex, pointIndex, &n, m3);

      /////得到纹理点,注意有可能没有纹理坐标,要先检查
      long texNum = mesh.numTVerts;
      Point3 t(0,0,0);
      if(texNum>0){
        long tindex = mesh.tvFace[faceIndex].getTVert(pointIndex);
        t = mesh.tVerts[tindex];
        Matrix3 m;
        m.IdentityMatrix();
        m.Scale(Point3(1,-1,1));
        m.Translate(Point3(0,1,0));
        t = m*t;
      }

      BYTE * pBuf = (BYTE*)pV;
      memcpy(pBuf, &v, sizeof(Point3));
      memcpy(pBuf + sizeof(Point3), &n, sizeof(Point3));
      memcpy(pBuf + sizeof(Point3)*2, &t, sizeof(float)*2);
    }

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-9-29 09:01:00 | 显示全部楼层

Re:请问3ds max插件纹理坐标的问题

一般纹理有问题的情况可能是顶点没有分裂,有些顶点应该分裂成两个或者多个顶点才能正确导出纹理坐标

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
 楼主| 发表于 2005-9-29 18:27:00 | 显示全部楼层

Re:请问3ds max插件纹理坐标的问题

谢谢2楼。

to 3楼:
有没有分裂的方法?

18

主题

122

帖子

132

积分

注册会员

Rank: 2

积分
132
发表于 2005-10-5 22:20:00 | 显示全部楼层

Re:请问3ds max插件纹理坐标的问题

MAXTOGL OR MAXTODX  坐标系不同也要注意  
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-28 01:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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