簡體   English   中英

乘以glMultMatrixd后獲得3D坐標?

[英]Getting 3D coordinates after multiplying by glMultMatrixd?

我有一個矩陣存儲在

GLdouble  m[16];

現在,使用glMultMatrixd(m),將此矩陣與點的3d坐標相乘。 我想知道乘以矩陣m后形成的新坐標是什么。 openGL中是否有任何命令可以做到這一點?

不,沒有任何有用的方法。

在現代GL中,出於充分的原因,已完全刪除了集成矩陣堆棧。 要求應用程序程序員編寫自己的矩陣函數,或使用某些現有的庫,例如glm (該庫在某些僅標頭的C ++庫中實現了舊OpenGL中所有的東西)。 在這種情況下,值得注意的是, glMultMatrix操作從未經過GPU加速,並且始終由GL實現直接在CPU上執行,因此從GL中刪除這些內容不會造成任何損失。

我並不是說讓OpenGL為您進行矩陣*向量乘法並讀取結果是不可能的。 最直接的方法是使用轉換反饋來捕獲某些緩沖區對象中頂點着色器的結果。 但是,對於轉換單個點,開銷將過高

另一種非常麻煩的方法是使用內置的矩陣函數來獲取舊的GL,為您計算該乘積,只需將您的第一列作為矩陣的第一列,然后通過使用glMultMatrix將其乘以您設置的矩陣,讀回當前的矩陣並在生成的矩陣的第一列中找到轉換點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM