GPU學習小筆記0
關於坐標點和像素:
點的描述都是浮點值,但是熒幕上面的像素點都是整型的,如果一個點的坐標為(10.48,20.51),則實際上在熒幕上面的像素點位置為(10,21).
關於Z-buffer:
Z-buffer存儲的Z值並不是線性的,在正投影中Z值是線性的,但是在透視投影中卻是非線性的。且隨著視點到空間點的距離增加而非線性的關係越發明顯。為了減輕這情況,應該盡量設置進裁剪面和遠裁剪面的比率小於等於1000.
Shader Language與高級語言:
Shader Language被稱作高級語言,但是高級語言的一個特性是與硬體獨立,而Shader Language則是需要完全依賴於GPU硬體的,所以只能說:從在便攜性上,Shader Language是高級語言.
Programmable Vertex Processor和Programmable Fragment Processor合二為一:
在DirectX 9之前,Vertex Processor和Fragment(Pixel) Processor在GPU內部是獨立不同的硬體單元,分別運行頂點代碼片段和像素代碼片段。而在DirectX 10之後,GPU發生了巨變,Vertex Processor和Fragment Processor合二為一,不再是分離單獨的運算單元,變成了一個稱之為Stream Processor(Shader Core)流處理單元的東西。注意這裡我稱呼的是流處理單元而不是流處理器。因為一個Stream Processor在嚴格意義上來說並不能算作一個處理器,因為沒有取指和調度單元構成一個完整的前端.
上面的意思是說,一個Shader Core既可以做以前Vertex Processor功能,又可以做Fragment Processor的功能.
關於Streaming Multiprocessors:
而在多個Stream Processor(Shader Core)組成的一個Streaming Multiprocessors多流處理器,或許才能稱為一個完整的處理器,因為每一個Streaming Multiprocessors有獨立的取指和調度單元來構成前端。
