pixel-shader

    1熱度

    1回答

    我有個像素着色器,寫在HLSL,聲明如下常量緩衝區: cbuffer RenderParametersData : register(b2) { float4 LineColor[16]; }; 在着色器的功能之一,我期待基於輸出顏色在指數的「顏色」(這是不是一個真正的色彩,只是一個方便的地方把索引LineColors的陣列): output.Color = Colors[inp

    1熱度

    1回答

    我正在處理GLES 1.1中的項目。它必須是GLES 1.1。 但它必須做一些預乘,即得到每一個像素,並從rgba = r * a,b * a,g * a,a改變它。然後再反轉它。 如果我有着色器,這將是沒有問題,但當然是gles 1.1我不知道。 通過readpixels做到這一點,然後在CPU上做並放回它的速度非常慢,所以我試圖想辦法我可以作弊。 現在的一種方式,我可以做預乘是通過採取glTe

    2熱度

    2回答

    我有一個足夠簡單的着色器,支持多個點光源。 燈光存儲爲一個Light結構陣列(達到最大尺寸),當燈光發生變化時,我傳入活動燈光的數量。 問題是在PixelShader函數中: 它是基本的東西,從紋理中獲取基色,通過燈陣列0循環到numActiveLights並添加效果,並且它工作正常,但性能很糟糕! 但如果我用同一個值的常量替換全局var numActiveLights的引用性能很好。 我只是無法

    2熱度

    1回答

    我有兩個渲染目標的看法,我的背緩衝區,並表示一個專門的面具(我不能用什麼我需要的模板緩存)一個Texture2D。我的渲染方法看起來大致是這樣的: // clear the render target and depth stencil views, set render targets, // update subresources, set vertex buffers, topology,

    2熱度

    1回答

    我有一個紋理,我需要知道它在像素着色器中的尺寸。這看起來像GetDimensions的工作。下面的代碼: Texture2D t: register(t4); ... float w; float h; t.GetDimensions(w, h); 然而,這將導致一個錯誤: X4532: cannot map expression to pixel shader instruction

    2熱度

    1回答

    如果我在同一個繪圖調用中有多個重疊的三角形,每個像素的像素着色器是否爲每個像素輸入一次?或者先執行深度測試,並且每個像素只着色一次,而不管原始數量是多少? 我正在使用DirectX 9並使用着色器模型4.0級別9_1。 謝謝!

    2熱度

    1回答

    我正在嘗試編寫幾個像素着色器來應用於類似Photoshop效果的圖像。例如這個效果: http://www.geeks3d.com/20110428/shader-library-swirl-post-processing-filter-in-glsl/ 但我注意到在結果圖像中存在別名。我能做些什麼來防止這種情況發生?我找不到任何解釋如何解決這個問題的文章。我讀了一些技術,比如渲染高分辨率然後縮小

    0熱度

    1回答

    我正在寫一個像素着色器,它具有屬性,對於給定的四元素,返回的值只會因u軸值而異。即對於一個固定的u,那麼當v變化時,顏色輸出是恆定的。 計算顏色在一個像素計算是相對昂貴的 - 即確實每像素/環等多個樣品.. 有一種方法採取V形不變性的優勢?如果我在CPU上這樣做,那麼你顯然只需要緩存一次計算出來的值,但由於並行性的原因,這種猜測並不適用。我可能會將紋理生成移動到CPU端,並讓着色器訪問Textur

    0熱度

    1回答

    我正在爲PhotoBooth應用程序創建效果庫。我創造了像黑/白,復古,懷舊,復古等效果等。 我想創造一些效果,現在我想在邊緣有一個黑色邊框,這種形式的框架image ..類似的東西 - >Example Effect 我該如何使用Pixel Bender和Flash來做到這一點?

    4熱度

    1回答

    我目前在DirectX9的工作,有我的法線貼圖如下代碼: (頂點着色器): float4x4 gWorldMatrix; float4x4 gWorldViewProjectionMatrix; float4 gWorldLightPosition; float4 gWorldCameraPosition; struct VS_INPUT { float4 mPositio