我做了一些搜索,但是我發現的唯一結果是反鋸齒和背後的機制。除了抗鋸齒之外,我還可以使用多采樣緩衝區嗎?
我想用比抗鋸齒其他的東西多樣品緩衝液。具體來說,我想到的是一種與順序無關的透明度,在每個樣本中存儲不同的顏色和深度值(理想情況下是距離相機最近的N個片段)。
這甚至可能擺在首位?它之前是否已經完成,如果是這樣,怎麼辦?即使有可能,它是否比只分配另外N個幀緩存更有記憶效率?
如果是這樣,這將需要計算着色器或OpenCL的,這很好,我只是好奇,看看它擺在首位是可能的。
這個問題是不特定於OpenGL或DirectX,因爲硬件會在兩種情況下是相同的。
PS。請不要僅僅指向其他與順序無關的透明度方法,這個問題具體是關於多采樣緩衝區是否可用於非典型手段。
我不這麼認爲,除非你可以編程光柵化器。 DX12可能是可能的,但我不知道。這可能使其可用於非反走樣使用。但你的想法似乎仍然不可能。 –
從來沒有嘗試過,但從OpenGL 4.0開始,可以使用'gl_SampleMask'變量[(引用)](https://www.opengl.org/wiki/Built-in_Variable_( GLSL)#Fragment_shader_outputs)。 – BDL
有趣的想法,但我不以任何方式看到這個工作。即使使用來自@BDL的'gl_SampleMask',三角形的邊緣也無法正確處理,因爲您無法寫入未被基元覆蓋的像素。例如,當使用2x2多重採樣並且您的圖元覆蓋4個子像素中的3個時,不能寫入第4個子像素。 – dari