1. 程式人生 > >模型矩陣、檢視矩陣、投影矩陣

模型矩陣、檢視矩陣、投影矩陣

模型檢視投影矩陣的作用,就是將頂點從區域性座標系轉化到規範立方體(Canonical View Volnme)中。總而言之,模型檢視投影矩陣=投影矩陣×檢視矩陣×模型矩陣,模型矩陣將頂點從區域性座標系轉化到世界座標系中,檢視矩陣將頂點從世界座標系轉化到檢視座標系下,而投影矩陣將頂點從檢視座標系轉化到規範立方體中。

如下圖所示,假設現在要將三維空間中的三角形渲染到螢幕上。三角形的模型檔案中,頂點座標是在區域性座標系(Xl-Yl-Zl)下的,比如圖中三角形三個頂點的初始座標就可能是(1,0,0),(0,1,0),(0,0,1)。

模型檢視投影矩陣

模型矩陣

模型矩陣將區域性座標系下的頂點座標轉化到世界座標系下。此處就要涉及區域性座標系相對於世界座標系的位置和方向

,或者說空間中的點的位置發生變化時,座標如何變化。

考慮三種基本的變換:平移、旋轉和縮放。

「變換」的含義就是,將點的初始位置的座標P對映到平移、旋轉、縮放後的位置座標P’,即:

xyzxyz

平移變換是最簡單的變換:

xyz=xyz+txtytz

旋轉變換有一些複雜,先看在二維平面上的旋轉變換:

二維旋轉

很容易得到:

x=xcosθysinθy=xsinθ+ysinθ

矩陣形式的表達更加簡潔:

[xy]=[cosθsinθsinθcosθ][xy]

推廣到三維空間中:

點繞Z軸旋轉:

xyz=cosθsinθ0sinθcosθ0001xyz

點繞X軸旋轉:

xyz=1000cosθsinθ0sinθcosθxyz

點繞Y軸旋轉:

xyz=cosθ0sinθ010sinθ0cosθxyz

繞指定的任意軸旋轉變換是由幾個繞座標軸旋轉變換和平移變換效果疊加而成。

縮放變換也比較簡單:

xyz=sx000s

相關推薦

OpenGl學習筆記3之模型變換檢視變換投影變換視口變換介紹

模型變換、檢視變換、投影變換、視口變換介紹 opengl中存在四種變換,分別是模型變換,檢視變換,投影變換,視口變換。這四種變換是圖形渲染的基本操作,實質上這四種變換都是由矩陣乘法表示(這些操作都是由一個4*4的矩陣來完成的),通過變換,我們可以看到各種通的顯示效果,最簡單

在企業級應用中我們如何通過Linux進行部署替換檢視日誌殺死程序?

用過Linux的人都知道,Linux的命令是非常多的,其實我們並不不需要去全學個遍。掌握最常用的命令之後,學習不常用的命令也不會很難,我們要學的是一種方法而不是為了技術而學技術。 檢視埠 在Linux使用過程中,我們需要了解當前系統開放了哪些埠,並且要檢視開放這些埠的具體程序和使用者,可

WebGL中模型矩陣檢視矩陣投影矩陣

WebGL中模型矩陣、檢視矩陣和投影矩陣 在WebGL開發中Shader是非常終於的部分,它是用類C語言的GLSL語言編寫的,可以實現很多炫酷的效果。 先看一篇網友的文章:GLSL下幾個簡單的Shader。文章中介紹了許多簡單的shader。看完文章之後就對shader的編寫有一個基

html元素獲取檢視節點彈出框邏輯運算子

複習js基礎知識 document   代表整個文件 一、獲取html元素 1)document.getElementById("id")           ie8以下  不區分大小寫 

Git學習筆記3——修改檔案檢視修改提交修改

修改檔案 我們已經成功地新增並提交了一個readme.txt檔案,現在,是時候繼續工作了,於是,我們繼續修改readme.txt檔案,改成如下內容: Git is a distributed version control system. Git is a fr

建立表空間檢視索引序列約束

表空間 建立表空間:如果要進行非系統表空間的建立,可以使用如下語法完成。 CREATE [TEMPORARY] TABLESPACE 表空間名稱 [DATAFILE | TEMPFILE 表空間檔案儲存路徑 …] [SIZE 數字[K | M]] [AUTOEX

《連載 | 物聯網框架ServerSuperIO教程》- 14.配製工具介紹,以及裝置驅動檢視驅動服務例項的掛載

目       錄 14.配製工具介紹,以及裝置驅動、檢視驅動、服務例項的掛載... 2 14.1        概述... 2 14.2        掛載裝置驅動... 2 14.3        掛載顯示檢視... 4 14.4 

Centos中iptables和firewall防火牆開啟關閉檢視狀態基本設定等

iptables防火牆 1、基本操作 # 檢視防火牆狀態 service iptables status   # 停止防火牆 service iptables stop   # 啟動防火牆 service iptables start   # 重啟防火牆 s

1-Linux的安裝檢視命令shell的介紹

1、Linux的安裝方式: 1)硬碟安裝方式、U盤安裝方式、網路安裝方式、光碟機安裝方式。 2)如何安裝雙系統(Linux+Windows):Linux和Windows是兩個完全不同的系統,因此Linux的檔案系統和Windows的檔案系統是互不相容的,如果要安裝Linux系統需要把這個磁碟

day053Django基礎之url控制器檢視函式模板

本節內容: 1、Django簡單示例 2、MTV之url控制器 3、MTV之檢視函式 4、MTV之模板 一、Django的簡單示例 1、需要知道的一些關鍵點 1 Django專案無論多大,只是一個應用程式 2 位址列發請求預設是:1、GET請求 2、form表單可以傳送get請求,也可以傳送post請求 3、

Rest Framework第三天-解析器執行流程檢視路由

resfu規範:     1 名詞(不要用get_book)     2 /books/1   通過請求方式,get請求,通過id拿書的資訊         /bo

html中禁止網頁另存為檢視原始檔遮蔽滑鼠右鍵

在HTML網頁中加入幾行簡單的程式碼可以禁止他人使用滑鼠右鍵和“另存為”命令。  一、遮蔽滑鼠右鍵  把網頁的標籤修改為下面的程式碼:<body oncontextmenu=self.event.returnValue=false onselectstart="return

原始碼管理工具 一一 Git-起別名檢視版本版本回退等

GIT命令列的其他用法 一.給命令起別名 1."給status"起別名為"st" git config alias.st "status" 2.來到.git->.config檢視起的別名

Scala泛型隱式轉換和隱式引數檢視介紹Scala中的上界下界結合柯里化進行隱式轉換

二、泛型 一、Scala泛型 1. 泛型介紹 泛型用於指定方法或類可以接受任意型別引數,引數在實際使用時才被確定,泛型可以有效地增強程式的適用性,使用泛型可以使得類或方法具有更強的通用性。泛型的典型應用場景是集合及集合中的方法引數,可以說同java一樣,s

7.scala初識 柯里化隱式引數隱式轉換檢視邊界上界下界協變逆變

1.前言: 學過java我們都知道,java中的繼承是對類的增強,java中的代理、裝飾是對物件方法的增強。而在scala中,隱式轉換和隱式引數是Scala中兩個非常強大的功能,隱式的對類的方法進行增

Django rest framework 常用外來鍵命令 (加入刪除檢視所有檢視除了自己以外的所有摘除分離物件間外來鍵關係)

依次介紹:加入、刪除、檢視所有、檢視除了自己以外的所有、摘除分離物件間外來鍵關係 model class MyUser(AbstractUser): team=models.ForeignKey('myteam.Team',related_name=

模型矩陣檢視矩陣投影矩陣

模型檢視投影矩陣的作用,就是將頂點從區域性座標系轉化到規範立方體(Canonical View Volnme)中。總而言之,模型檢視投影矩陣=投影矩陣×檢視矩陣×模型矩陣,模型矩陣將頂點從區域性座標系轉化到世界座標系中,檢視矩陣將頂點從世界座標系轉化到檢視座標系下,而投影

iNeuOS 物聯網雲作業系統2.0釋出,整合裝置容器檢視建模機器學習三大模組

目       錄 1.      概述... 2 2.      使命及目標... 3 3.    &

Django--路由層檢視模版層

   路由層:   路由匹配     url(正則表示式,檢視函式記憶體地址)     只要正則匹配到了內容,就不再往下匹配,而是直接執行後面的檢視函式       匹配首頁)         url(r'^&', home)       匹配尾頁         url(r'', e

機器學習中模型的效能度量方式:混淆矩陣,F1-ScoreROC曲線AUC曲線。

一、混淆矩陣 混淆矩陣也稱誤差矩陣,是表示精度評價的一種標準格式,混淆矩陣的每一列代表了預測類別,每一列的總數表示預測為該類別的資料的數目;每一行代表了資料的真實歸屬類別 ,每一行的資料總數表示該類別的資料例項的數目。每一列中的數值表示真實資料被預測為該類的數目。