2011-12-11 29 views

回答

0

你必須做數學手動計算它們。 WebGL僅爲自己的目的計算它們,即:渲染。

桌面GL有辦法讓這些職位回來(變換反饋),但WebGL沒有。

+0

我不知道如何計算它。 :'( –

5

您必須執行與WebGL相同的計算。它需要一個3D點[X,Y,Z]均質點[x,y,z,w]經由

[x,y,z,w] = pMatrix * mvMatrix * [X,Y,Z,1]

要獲得剪輯空間座標,除以通過w

[x/w,y/w,z/w]

x/wy/w是在範圍[-1 ,1]。要將它們轉換爲視口座標,請根據畫布大小對它們進行縮放。

[x/w,y/w] -> [(1 + x/w)*canvas.width/2, (1 - y/w)*canvas.height/2]

注意在y「方向」如何協調在過去的轉型變化。

有關更多信息,您可以谷歌「圖形管道」。例如。 http://en.wikipedia.org/wiki/Graphics_pipeline

+0

謝謝,但'w'是什麼? –

+0

@Danny,要理解'w'您需要了解齊次座標以及它們在計算機圖形學中的使用方式,例如http://knol.google.com/k/透視變換#Matrix_form_for_the_perspective_transform。如果你不想理解,只要認識到pMatrix是4x4,並給你一個額外的座標,你必須劃分出來返回到三個座標,希望有幫助。 – brainjam