HLSL中如何把輸入對映到輸出畫素

2021-08-22 06:27:13 字數 553 閱讀 5443

當使用ps來進行2d影象處理的時候,實際上仍然在做3d成像。我們渲染多邊形直接和螢幕對齊,然後覆蓋在螢幕上。我們直接把2d pixel shader應用到這個表面上。

最常用的方法是用乙個簡單的與螢幕對齊的矩形(兩個三角形)來覆蓋螢幕。如果定義了乙個3d單位大小的正方形,所有的點在x和y軸範圍從-n到n(n一般取0.5或1.0),而z座標為0。然後用下面的**將它與螢幕對齊。注意在d3d中,紋理座標位於每個紋元的中心,而不是以乙個角為中心。這個微小的偏移很少能夠被肉眼看到。但是,如果想要合成多個成像過程的結果,這就會產生很多問題。每個過程如果沒有對準,將會偏移半個紋理元素,這有時是令人討厭的。

outvs.pos = float4(2n * (invs.tex.x - n/2) -n / imgwidth, -2n * (invs.tex.y - n/2) +n / imgheight, 0, 1);

其中,imgwidth, imgheight——紋理的寬度和高度(如256×256、512×512等)。另外注意,d3d中的紋理座標的y軸是以向下為正的,這與螢幕上的對應的影象的y軸方向正好相反。

我的blog:歡迎交流!

如何將ORM模型對映到資料庫中?

1.用declarative base根據engine建立乙個orm基類。1.用declarative base根據engine建立乙個orm基類。from sqlalchemy.ext.declarative import declarative base engine create engine...

STM32之如何將時鐘脈衝對映到IO輸出

有時為了驗證晶振的精度,一種方式就是直接測量晶振的引腳的脈衝頻率,這種方式的成本和測試條件都比較高,另一種方式就是經過微控制器處理後經普通io口輸出,這種方式只要有普通的頻率計或者示波器即可驗證。測試mcu stm32f030c8t6 原理分析 stm32f030c8t6或其他系列的微控制器有乙個功...

python中如何把log輸入到檔案

import logging,os import time def getlogger loggername mylogger 使用乙個名字為mylogger的logger logger logging.getlogger loggername 設定logger的level為debug logger...