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

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

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

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

    给笨笨的自己提个醒>_<~
  • 相关阅读:
    任务08——第一次半月学习总结
    任务5
    任务4
    任务3
    任务2
    mission 01
    HTML-CSS-JS Prettify报错Node.js was not found
    **1279
    UVa 10735
    UVa 1515
  • 原文地址:https://www.cnblogs.com/ephuizi/p/5662769.html
Copyright © 2011-2022 走看看