zoukankan      html  css  js  c++  java
  • opengles 矩阵计算

    总的变换矩阵:

    matrix = projection * view * model

    模型矩阵:

    modelMatrix=translateMatrix * scaleMatrix * rotateMatrix

    视图矩阵:

    viewMatrix=gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,

    GLdouble centerx,GLdouble centery,GLdouble centerz,
    GLdouble upx,GLdouble upy,GLdouble upz);

    相机位置(eyex,eyey,eyez) 焦点(centerX,cneterY,centerZ) 相机头的朝向(upx,upY,upZ)

    自转:修改modelMatrix的rotateMatrix

    公转:viewMatrix = viewMatrix * rotateMatrix

    法向量矩阵是模型视图矩阵的逆转置矩阵

    normalMatrix = GLKMatrix3InvertAndTranspose(GLKMatrix4GetMatrix3(GLKMatrix4Multiply(viewMatrix, modelMatrix)))

    GLKMatrix4GetMatrix3

    ==>a4=[

    0 1 2 3;

    4 5 6 7;

    8  9 10 11;

    12 13 14 15;

    ]

    ==>a3=[

    0 1 2;

    4 5 6;

    8  9 10;

    ]

    opengl是右乘的,逆推平移矩阵

    不考虑视图矩阵和投影矩阵的情况下,我们手动计算的顺序

    V' = V * model = V * (rotateMatrix * scaleMatrix  * translateMatrix)=V * (rotateMatrix * scaleMatrix)  * translateMatrix

    模型矩阵----将物体坐标变换为世界坐标

    视图矩阵----将世界坐标变换为眼睛坐标

    投影矩阵----将眼睛坐标变换为裁剪坐标

    给笨笨的自己提个醒>_<~
  • 相关阅读:
    IT面试技巧(2)
    mySQL学习入门教程——4.内置函数
    weight decay (权值衰减)
    c++读取文件目录
    caffe 卷积层的运算
    一个物体多个标签的问题
    python caffe 在师兄的代码上修改成自己风格的代码
    caffe 细节
    vim让一些不可见的字符显示出来吧
    python 读写文件
  • 原文地址:https://www.cnblogs.com/ephuizi/p/5662769.html
Copyright © 2011-2022 走看看