青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 85  文章 - 47  trackbacks - 0

常用鏈接

隨筆分類

隨筆檔案

搜索

  •  

最新評論

First, think what you want these matrices do.
Let we have transformation matrices A and B . We want to transform vector V by both and get vector V'.
But above is not enough to specify what we want to do, as
first transform by A then transform by B
and
first transform by B then transform by A
are different. You can just try to play with rotations in real world.(get a cube, paint x,y,z on sides, etc.)

Now, more on how it's done:

first transform by A then transform by B
It is easy to see that this is accomplished by:
In openGL's convention:
V'=B*(A*V)
Note that it is same as
V'=(B*A)*V
so you can do it as
C=B*A;
V'=C*V;
In DX's convention:
V'=(V*A)*B
C=A*B;
V'=V*C;
(note: real operations done on memory is the same. It's just matter how we map matrix indices to memory)
As you see, V*A*B and B*A*V is kind of symmetrical. Same for consequently applied transforms like V*A*B*C*D*E*F or F*E*D*C*B*A*V

Now, write it down for "transform by B then transform by A" yourself to remember it better.

When you render something , you want points to be transformed by
matrix of object
matrix of parent object
matrix of grandparent object ...
matrix of camera
(and done by API, projection matrix)
From there you can find what order of multiplications you want. In OGL, you need to
m=matrix_of_camera*matrix_of_grandparent_objectmatrix_of_parent object*matrix_of_object;
...
then if you'll glLoadMatrix, OpenGL will do
vertice=m*vertice;

Some more notes: Let you have spacecraft with spacecraft-to-world matrix M
And you use OpenGL convention.
For example, to turn spacecraft around spacecraft's local X direction, you need to
M=M*axis_angle_to_matrix(Vector(1,0,0),angle);
(note: you need to reorthonormalize matrix if you do that incrementally)
To turn spacecraft around global X direction, you need to
M=axis_angle_to_matrix(Vector(1,0,0),angle)*M;


On openGL:

This sequence

glMatrixMode(GL_MODELVIEW);
glMultMatrix(A);
glMultMatrix(B);
glMultMatrix(C);
... render your mesh ...
works as if your mesh would be transformed by C,then B, then A
It makes lot of sense, if you for example want to render a robot with matrices giving positions of child nodes (fingers) relativelty to parent (arm), and arm are responsible for positioning fingers, you can do
RenderArm(){
glPushMatrix();
glMultMatrix(matrix_of_first_finger);
RenderFinger();
glPopMatrix();
glPushMatrix();
glMultMatrix(matrix_of_second_finger);
RenderFinger();
glPopMatrix();
}
and so-on(simplified example)
Then, you can have
glPushMatrix();
glMultMatrix(matrix_of_arm);
RenderArm();
glPopMatrix();

and it will work properly.

If you have more questions, ask.
posted on 2008-04-30 22:05 w2001 閱讀(1415) 評論(2)  編輯 收藏 引用

FeedBack:
# re: OpenGL中的矩陣計(jì)算[未登錄] 2009-09-04 19:22 joe
you english is really...bad...

please write in chinese, that will be more helpful~  回復(fù)  更多評論
  
# re: OpenGL中的矩陣計(jì)算 2009-09-09 19:31 w2001
轉(zhuǎn)載,與本人水平無關(guān)。english止一工具耳,看得懂就達(dá)到目的了,至于badgood,說明不了任何問題。  回復(fù)  更多評論
  
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美成人精品在线播放| 欧美亚洲在线| 国产精品久久久久久久免费软件| 久久婷婷综合激情| 久久天堂成人| 欧美91福利在线观看| 欧美成人精品激情在线观看| 欧美国产在线观看| 国产精品久久久一区麻豆最新章节 | av成人国产| 亚洲欧美www| 久久久精品视频成人| 欧美激情aⅴ一区二区三区| 国产精品福利在线观看网址| 国产精品视频yy9299一区| 狠狠色综合色区| 一本色道精品久久一区二区三区 | 欧美在线啊v一区| 久久久噜久噜久久综合| 亚洲国产女人aaa毛片在线| 欧美韩日视频| 亚洲视频欧美在线| 久久不见久久见免费视频1| 欧美成人一区二区| 国产日韩欧美一区二区| 亚洲国产精品福利| 香蕉成人伊视频在线观看| 欧美阿v一级看视频| 亚洲网站视频| 欧美大片在线影院| 激情五月婷婷综合| 亚洲欧美在线免费| 亚洲精品乱码久久久久久| 性欧美暴力猛交69hd| 欧美精品不卡| 亚洲第一中文字幕| 久久久青草婷婷精品综合日韩| 亚洲第一区在线观看| 午夜久久影院| 国产精品久久二区| 日韩视频中午一区| 欧美成人免费全部| 久久精品成人一区二区三区| 国产精品国产三级国产aⅴ9色| 亚洲国产精品一区二区三区| 久久精品午夜| 亚洲欧美国产日韩中文字幕| 欧美刺激性大交免费视频| 亚洲一区在线视频| 欧美日韩一区成人| 日韩亚洲在线| 最新国产精品拍自在线播放| 久久久久久久久久久久久女国产乱 | 亚洲综合成人在线| 欧美体内she精视频在线观看| 亚洲国产精品传媒在线观看| 久久一区二区三区四区| 欧美在线资源| 国产一区二区三区精品欧美日韩一区二区三区 | 久久大逼视频| 国内精品美女在线观看| 久久久久国产精品一区三寸| 亚洲欧美在线一区| 国产一区二区三区在线观看免费视频 | 亚洲大片一区二区三区| 免费久久99精品国产自在现线| 欧美一区二区网站| 国产一级一区二区| 久久一区二区三区四区| 久久久噜噜噜| 亚洲国产精品va在线观看黑人| 欧美成人a∨高清免费观看| 久久婷婷av| 亚洲美女免费精品视频在线观看| 亚洲国产成人91精品| 欧美精品乱码久久久久久按摩| 日韩一本二本av| 亚洲私人影吧| 韩国一区二区在线观看| 欧美高清视频一二三区| 欧美日韩亚洲精品内裤| 久久精品欧洲| 久热这里只精品99re8久| 亚洲乱码国产乱码精品精可以看| 99精品视频免费全部在线| 国产精品综合不卡av| 麻豆精品91| 欧美日韩一区二区三区免费| 久久成人人人人精品欧| 牛夜精品久久久久久久99黑人| 一本色道久久加勒比88综合 | 久久视频在线视频| 欧美精品九九99久久| 一区二区不卡在线视频 午夜欧美不卡'| 欧美激情网友自拍| 国产精品久久久久久福利一牛影视| 午夜精品理论片| 久久免费精品日本久久中文字幕| 亚洲精品国产精品国产自| 一区二区三区黄色| 亚洲第一二三四五区| 一区二区免费在线视频| 伊伊综合在线| 亚洲一本视频| 日韩视频在线一区二区| 久久精品av麻豆的观看方式 | 亚洲欧美另类国产| 久热精品视频在线观看| 欧美一区二区精品| 欧美日本不卡高清| 你懂的视频欧美| 国产日韩欧美中文在线播放| 日韩午夜在线| 亚洲日本欧美日韩高观看| 久久er精品视频| 午夜在线一区| 欧美特黄一区| 亚洲美女黄色片| 亚洲人午夜精品| 久久久久国产精品麻豆ai换脸| 亚洲欧美日韩国产综合精品二区| 欧美电影免费观看高清完整版| 久久深夜福利免费观看| 国产伦精品一区二区三区在线观看| 亚洲精品久久久一区二区三区| 亚洲精品1区| 久久综合五月| 免费在线日韩av| 激情五月***国产精品| 欧美一区在线看| 久久精品一区二区国产| 国产欧美丝祙| 欧美一区二区高清| 欧美一区二区啪啪| 国产精品视频免费在线观看| 一区二区三区久久网| 亚洲一区二区三区免费视频| 欧美日韩国产精品| 亚洲乱码国产乱码精品精98午夜| 亚洲精品国产品国语在线app| 蜜桃av一区二区在线观看| 欧美成人免费va影院高清| 91久久在线视频| 欧美日韩高清一区| 在线一区免费观看| 久久精品人人做人人爽| 国内精品久久久久影院薰衣草| 欧美在线地址| 欧美电影免费观看| 亚洲欧洲在线看| 欧美日韩精品免费观看| 亚洲视频狠狠| 久久久久久午夜| 91久久国产自产拍夜夜嗨| 欧美精品v日韩精品v韩国精品v | 欧美伊人久久久久久久久影院| 久久久综合精品| 最新中文字幕亚洲| 一区二区三区av| 欧美在线视频在线播放完整版免费观看| 国产精品日韩在线观看| 欧美在线视频一区二区三区| 久久夜色精品亚洲噜噜国产mv| 亚洲国产mv| 国产精品高潮久久| 久久久国产亚洲精品| 亚洲精品久久久久久久久久久久久| 亚洲免费在线视频一区 二区| 国产亚洲欧美日韩精品| 免费中文日韩| 亚洲欧美日韩中文播放| 欧美激情精品久久久久久蜜臀| 亚洲一区二区日本| 亚洲丰满在线| 国产精品久久久久影院色老大| 久久久噜噜噜久久中文字幕色伊伊 | 一区二区三区高清不卡| 久久精品人人做人人爽| 在线亚洲欧美| 亚洲电影在线看| 国产农村妇女精品一二区| 女生裸体视频一区二区三区| 亚洲尤物影院| 亚洲欧洲精品一区二区三区波多野1战4 | 韩国成人精品a∨在线观看| 欧美激情第二页| 久久国产欧美精品| 亚洲一区亚洲| 99re6热只有精品免费观看| 久久一区二区三区四区五区| 亚洲午夜在线观看| 91久久综合| 国内精品久久久久久影视8| 欧美日韩在线精品| 男女av一区三区二区色多| 性欧美大战久久久久久久免费观看| 99国产精品久久久| 亚洲国产小视频在线观看| 米奇777在线欧美播放| 久久精品导航|