游戏开发论坛

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

如何消除3D中的锯齿? -- 关于Mesh.TessellateNPatches的使用

[复制链接]

3

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
发表于 2007-12-4 07:56:00 | 显示全部楼层 |阅读模式
我通过Mesh.Cylinder和Mesh.Cone生成的3D坐标轴,在非特定角度会出现非常明显的锯齿。。。
打算使用Mesh.TessellateNPatches消除锯齿现象:
cylinder是一个Mesh。下面的代码隐去了异常处理部分。
VertexBuffer vb = cylinder.VertexBuffer;
GraphicsStream adj = vb.Lock(0,0,0);
Mesh tmp = Mesh.TessellateNPatches( cylinder, adj, 4, true);
if( tmp != null) cylinder = tmp;
....

在执行到语句tmp = Mesh.TessellateNPatches( cylinder, adj, 4, true);时会抛出异常,是不是不能这样调用啊? [em6]
谢谢了。。。。

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-12-4 10:32:00 | 显示全部楼层

Re:如何消除3D中的锯齿? -- 关于Mesh.TessellateNPatches的使用

你用的是什么引擎。你只写函数。谁知道你函数里面干什么。错在哪里自然也不知道啊

3

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2007-12-4 11:17:00 | 显示全部楼层

Re:如何消除3D中的锯齿? -- 关于Mesh.TessellateNPatches的使用

没有使用任何引擎。
我只是想问Mesh.TessellateNPatches这样用对不对。。。。

3

主题

13

帖子

17

积分

新手上路

Rank: 1

积分
17
QQ
 楼主| 发表于 2007-12-10 15:00:00 | 显示全部楼层

Re:如何消除3D中的锯齿? -- 关于Mesh.TessellateNPatches的使用

自己顶。。。。
就是通过Cylinder生成的圆柱Mesh来表示3D坐标轴。会出现很严重的锯齿。我想通过Mesh.TessellateNPatches把生成的Mesh进行细分来清除锯齿。。。。。。谢谢了。。。。

27

主题

418

帖子

455

积分

中级会员

Rank: 3Rank: 3

积分
455
QQ
发表于 2007-12-11 01:58:00 | 显示全部楼层

Re:如何消除3D中的锯齿? -- 关于Mesh.TessellateNPatches的使用

哈哈,我没记错的话,那个函数其实就是ATI以前的TruForm技术。
NV的显卡是绝对不支持的,ATI自己的显卡也只有8500是硬件支持,后来的都是软件支持了,而且还是被默认关闭的。

好像Matrox的幻日支持这种技术。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 04:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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