游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2581|回复: 7

为什么图形要用矩阵来操作??

[复制链接]

42

主题

367

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
发表于 2005-11-7 21:25:00 | 显示全部楼层 |阅读模式
比如说一个正方体   长3 宽3  高3  
它在一个世界坐标(6,6,6)里
然后它的8个顶点就在这个世界坐标的:
正面左下角6,6,6)
正面右下角:(9,6,6)
正面左上角:(6,9,6)
正面右上角:(9,9,6)
背面左下角:(6,6,9)
背面右下角:(9,6,9)
背面左上角:(6,9,9)
背面右上角:(9,9,9)

然后要把它放大4倍  
只要除了正面左下角不变  其他几个点相应加上12就可以了啊?  为什么要用矩阵操作? 这不是增加了复杂性??????????????????????????????????????????????????????????????????????

42

主题

367

帖子

367

积分

中级会员

Rank: 3Rank: 3

积分
367
 楼主| 发表于 2005-11-7 21:28:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

忽然想起来了  这不仅增加了复杂  而且cpu又要多做几次乘法运算(矩阵相乘)  而且内存又要多存一个4*4的数组????????????/

12

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
发表于 2005-11-8 11:11:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

深奥

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2005-11-8 11:46:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

因为平移,旋转,缩放这些基本操作都可以用统一的矩阵计算来做。人可以根据特殊情况进行特殊的优化,但是计算机没有那么聪明,而且现实情况中也没有那么多特殊情况。

64

主题

855

帖子

856

积分

高级会员

Rank: 4

积分
856
QQ
发表于 2005-11-8 14:49:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

因为最终3D网格的每个顶点会被显卡依次乘以其世界矩阵、观察矩阵、投影矩阵,这样才形成屏幕平面上看到的最终图形,当然这3个矩阵也可以乘在一起,所以,无论你怎么修改顶点坐标,硬件最终还是要将每个顶点乘以以上矩阵,所以,可以把针对图形的变换记录到世界矩阵中去。

另外,反复修改顶点坐标可能导致累积精度误差,故,应该在矩阵中进行模型的变换而不是在VB中。

3

主题

105

帖子

105

积分

注册会员

Rank: 2

积分
105
发表于 2005-11-8 15:33:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

     显卡是特别优化过矩阵运算的, 速度没问题的, 你说的只是特殊情况而已,通常情况下都要复杂很多的 ,一般的CPU处理起来没优势的

63

主题

871

帖子

891

积分

高级会员

Rank: 4

积分
891
QQ
发表于 2005-11-8 15:34:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

硬件需要统一的算法

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2005-11-12 16:24:00 | 显示全部楼层

Re:为什么图形要用矩阵来操作??

1/2已经很简单了,没必要改成 3/6,但如果1/2要跟1/6相加,
那么把 1/2改成3/6是很有意义的。同样

“平移”的时候各个坐标独立计算完全可以实现坐标变化,
但如果是旋转呢? XYZ怎么变化?
矩阵可以做“平移”,也可以做“旋转”。
所一了啦。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 15:07

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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