0
我設法使alpha可以工作,但我只想在一個紋理上更改alpha。目前它只適用於兩者。我設置深度測試和融合的因素:AGAL/Stage3D:在一個着色器中重疊2個紋理
context3D.setDepthTest(false, Context3DCompareMode.LESS);
context3D.setBlendFactors(Context3DBlendFactor.SOURCE_ALPHA, Context3DBlendFactor.ONE_MINUS_SOURCE_ALPHA);
我還沒還是想通了,究竟是什麼來源和destionation,任何澄清將是很好。 頂點數據包含
[x, y, z, u, v, 0|1]
集頂點寄存器
context3D.setVertexBufferAt(0, m_vertexBuffer, 0, Context3DVertexBufferFormat.FLOAT_3);
context3D.setVertexBufferAt(1, m_vertexBuffer, 3, Context3DVertexBufferFormat.FLOAT_2);
context3D.setVertexBufferAt(2, m_vertexBuffer, 5, Context3DVertexBufferFormat.FLOAT_1);
集片段恆定
context3D.setProgramConstantsFromVector(Context3DProgramType.FRAGMENT, 0, Vector.<Number>([textureMul, 0, 0, 0]));
頂點着色器
m44 op, va0, vc0
mov v0, va1
mov v1, va2
Fragm耳鼻喉科着色器
tex ft0, v0, fs0 <2d,clamp,linear>
sub ft0.w, ft0.w, fc0.x
add ft0.w, ft0.w, v1
mov oc, ft0
哪裏fc0.x是數字0和1之間且v1爲Windows爲PIX程序爲0或1