fragment-shader

    1熱度

    1回答

    book of shaders有十幾個例子,他們設置顏色以複雜的方式 color = (1.0-pct)*color+pct*vec3(0.0,1.0,0.0); 問題: 什麼他們PCT代表呢,你覺得呢? 爲什麼數學減1 (1.0-pct)? 爲什麼按顏色加上pct color+pct? 你如何乘以一個數字和一個向量x*vec3(0.0,1.0,0.0);? 爲什麼數學乘數和矢量? 完整代碼示

    1熱度

    1回答

    我想創建一個半透明的球體,該球體突出顯示與其他物體(例如地面)相交的地方。 就像在這張照片上的白線: 我發現an Unreal Engine 4 tutorial有關如何創建類似的東西。 它在着色器中使用「深度淡化」。不幸的是,我還沒有找到任何有關Depth Fades的OpenGL教程。 如何創建這樣的效果?

    0熱度

    1回答

    這可能是一個愚蠢的問題,但我堅持這一段時間,所以要問它無論如何。 我想實現一個寵物項目Hudson/Nashville過濾器。我GOOGLE了一下,結帳了幾個開源項目,發現一些Objective-C(我不明白)基於項目。他們確實使用GPUImage2實施了過濾器,但我不確定他們的方法。 我有重疊和其他圖像,他們已經使用和GLSL文件。 所以我的問題是我怎麼去使用這個圖像和着色器文件來實現自定義過濾

    0熱度

    2回答

    我想交換程序中使用的fragement-shader。片段着色器都具有相同的變量,只是不同的計算。我正在嘗試爲低級硬件提供替代着色器。 我最終得到單色輸出(而不是紋理),有沒有人有一個想法,我可能做錯了什麼?由於顏色相應改變,我知道着色器正在使用。 //if I don't do this: //WebGL: INVALID_OPERATION: attachShader: shade

    1熱度

    1回答

    試圖實現WebGL的一點燈光,我發現我的照射角度的變化,當我放大 我的頂點着色器: uniform mat3 u_rotationMatrix; uniform mat4 u_transformMatrix; attribute vec3 a_position; attribute vec3 a_normal; varying vec3 v_normal; varying vec3 v_

    0熱度

    1回答

    我需要在每個WebGL片段着色器調用(包括沒有OES_texture_float或OES_texture_half_float擴展可用時)中保存多達8個32位值。看來我只能通過將它打包到4x8bits RGBA gl_FragColor中來存儲單個32位值。 有沒有辦法存儲8個值?

    0熱度

    1回答

    我希望在着色器中將兩個紋理合併到一起,就像您期望從類似Photoshop的程序中那樣。就是說,一個紋理在另一個上面彷彿是分層的。 這兩個紋理都將具有alpha,並且結果輸出也應該具有正確的組合alpha。 所以目標是; 但是,儘管google的公式,我無法得到正確的顏色。 這裏使用參考:(https://microsoft.github.io/Win2D/html/PremultipliedAlp

    0熱度

    2回答

    我有簡單的着色器,它允許我根據節點(x> 0) - >綠色的局部座標軸重繪節點顏色,但是如何使它工作基於世界座標。 (從現場將一些點並將它傳遞給着色器不基於可能的着色器) Shader demo vec4 pos = u_inverseModelTransform * u_inverseViewTransform * vec4(_surface.position, 1.0); if (pos.

    2熱度

    1回答

    據Apple's Metal shading language specification,質地立方體有一個讀法, read(uint2 coord, uint face, uint lod = 0) const 但是,當我嘗試建立這個着色器,我得到一個編譯錯誤, fragment half4 passFragment(VertexInOut inFrag [[stage_in]],

    1熱度

    1回答

    目前我有處理GLSL着色器制服的問題。如果我在場景中只有一個物體,制服就如我所料。但是,對於多個對象,均勻性不是針對每個對象設置的,換句話說,最後一個均勻度用於表示所有場景對象。 我該如何處理這個問題?如下我的C++代碼: void addSimpleObject(osg::ref_ptr<osg::Group> root, osg::Vec3 position, float radius, fl