清明时节雨

导航

OpenGL的矩阵

    今天早上遇到了一个问题,视图模型矩阵堆栈进入三层之后显示效果就出现问题,差错发现出现了溢出。

    然后查阅MSDN,知道投影矩阵、纹理矩阵和模型视图矩阵堆栈的支持至少为2232。为什么会溢出呢?

    之后写了几个例子,也没有出现问题。折腾了一上午发现原来问题出在没有选择视图模型矩阵,所有的绘制操作都是在投影矩阵上实现的,投影矩阵堆栈只提供两层,所以出错。但让我疑惑的是显示效果上竟然没有看出任何差异。

    之后又写了几个例子进行尝试,不使用试图模型矩阵似乎都没有问题。在代码的不同阶段检查当前矩阵的值,得出的结论是这样的。投影矩阵和试图模型矩阵仅仅是为计算提供的缓冲区,他们并没有什么不同,仅仅决定了当前操作使用哪个矩阵作为辅助。因为投影操作和视图模型操作并没有数据上的冲突,所以看起来无论用哪个矩阵效果都一样。不过如果绘制内容比较复杂的时候,这绝对是不可靠的。

posted on 2013-05-09 13:53  学而不思  阅读(326)  评论(0编辑  收藏  举报