我需要計算分配給從某個角度在屏幕上繪製給定對象時產生的像素的最小和最大UV值。例如,如果我有UV映射的立方體,但只有正面可見,則應將min(UV)和max(UV)設置爲分配給可見面像素的最小和最大UV座標。獲取最小和最大渲染的UV值(Direct3D)
我想使用Direct3D 9着色器(以及儘可能最低的着色器模型)來加速處理。頂點着色器可以像獲取每個輸入頂點的UV座標一樣簡單,並將它們未經修改地傳遞給像素着色器。另一方面,像素着色器必須採用頂點着色器生成的值,並使用它們來計算最小和最大UV值。
我想知道的是:
- 如何維持像素着色器的調用之間的狀態(電流的最大值和最小值)?
- 如何獲得着色器生成的最終最小值和最大值到我的程序中?
有沒有辦法在HLSL中做到這一點,還是我堅持用手工做?如果HLSL不起作用,那麼在不使用着色器的情況下最有效的方法是什麼?
我需要知道正在採樣的UV空間的範圍,以便我可以從大紋理圖像(對於視頻卡要處理的太大)採用矩形部分,並將這些像素複製到足夠小以適合的較小紋理視頻內存。 – 2010-09-05 21:01:31
爲什麼不能分割紋理並相應地提前調整UV? – Goz 2010-09-05 21:27:58
我不明白你的意思。如果我不知道要渲染哪個UV空間子集,我將如何知道要複製哪個紋理子集? – 2010-09-05 21:32:43