游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4860|回复: 14

问个问题Mesh移动的问题

[复制链接]

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
发表于 2006-5-17 10:00:00 | 显示全部楼层 |阅读模式
Mesh在加载后,我尝试着用Mesh.device.transform.world=Matrix.multiply(Mesh.device.transform.world,m);//m是一个矩阵用以移动和变形的
但是得到的不只有Mesh一个模型动的结果,而是这个世界都动了,郁闷中怎么办呢?
,不知道怎么才能得到c#里模型自己的世界坐标呢?
顺便就是纹理的设置真是复杂,在这里抱怨一下~~ [em17]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-17 14:56:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

渲染哪个物体之前设WORLD矩阵,渲染完就恢复成NULL,否则会影响后面渲染的物体

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-17 20:16:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

谢谢
我用了个笨方法,直接该vertexbuffer了,是不是很蠢,而且影响效率啊

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-17 20:29:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

晕。。。当然极度影响效率了!!!

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-18 10:48:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

那是为什么啊,乘矩阵不也是改变vertices的坐标吗?

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-18 11:18:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

我的程序现在是这样,有一个render()在Onpaint(...)里面负责画图,OnkeyPress(...)负责相应键盘在,想这个函数里面改mesh的世界坐标可是怎么改都是一起动,是不是不应该用onpaint没完没了的画图啊?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-18 13:19:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

不是的,顶点数据流入渲染管线之后,管线会自动把设置好的矩阵(常量)和每个顶点相乘,这个过程是在GPU内完成的,也就是T&L所做的事。可你要直接LOCK来改变顶点缓冲,这就把运算转移到CPU上。。。性能下降程度接近恐怖……可能你顶点数不够多,要是搞个复杂点的Mesh就知道厉害了……

前面说过了,每个3D物体都是独立的,你绘制每个物体之前都必须设置它自己的位置,就是世界矩阵,绘制完了恢复,SetTransform(D3DTS_WORLD, NULL),这个世界矩阵的设置是全局有效的,如果你不恢复,下一个物体就会沿用上一个物体的矩阵。。。当然会一起动了

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-18 13:56:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

太谢谢了,看到希望的曙光了
如果机器没有gpu怎么办,会不会因为没有gpu而程序处理不了

7

主题

33

帖子

39

积分

注册会员

Rank: 2

积分
39
 楼主| 发表于 2006-5-18 14:03:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

对了那要是下一贞动画里面物体继续移动,那么乘的矩阵就变了是吧,还是要把原点的物体乘以一个新的矩阵,举个例子如果一个物体沿一个sin(t)的曲线运动那么贞动画里面的物体的位置就要每时每刻和刚刚计算出来的sin(t)的值了,和上一时刻在哪完全没有关系?!

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-5-18 14:12:00 | 显示全部楼层

Re:问个问题Mesh移动的问题

你在创建设备时指定D3DCREATE_HARDWARE_VERTEXPROCESSING就是自动用GPU来做,如果没有GPU的话就指定D3DCREATE_SOFTWARE_VERTEXPROCESSING,系统会自动用CPU做,这些都是和程序无关的东西,你设置的世界矩阵都会起作用的,呵呵
现在的显卡还有不带T&L的吗?除非是TNT或者更烂的,只要是Geforce都带的啦
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 12:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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