Beispiel #1
0
        public void TextureSample(string colorName, bool declard, string texName, string uv, bool isNormal = false)
        {
            if (Condition(SWNodeType.blur))
            {
                if (declard)
                {
                    StringAddLine(string.Format("\t\t\t\tfloat4 {0} = float4(1,1,1,1);", colorName));
                }

                SWShaderProcessReceiveBlur receiveBlur = new SWShaderProcessReceiveBlur();
                foreach (var outp in childOutputs)
                {
                    foreach (var item in outp.outputs)
                    {
                        if (item.data.type == SWNodeType.blur)
                        {
                            receiveBlur.Blur(this, item, colorName, texName, uv);
                        }
                    }
                }
            }
            else
            {
                StringAddLine(string.Format("\t\t\t\t{0}{1} = tex2D(_{2},{3});    ",
                                            declard?"float4 ":"", colorName, texName, uv));

                //iNormal
                if (isNormal)
                {
                    StringAddLine(string.Format("\t\t\t\t{0} = float4(UnpackNormal({0}),1);", colorName));
                }
            }
        }
        public static SWShaderProcessReceiveBase CreateProcessorReceiver(SWNodeType type)
        {
            SWShaderProcessReceiveBase receiver = null;

            if (type == SWNodeType.root)
            {
            }
            else if (type == SWNodeType.mask)
            {
            }
            else if (type == SWNodeType.color)
            {
                receiver = new SWShaderProcessReceiveColor();
            }
            else if (type == SWNodeType.image)
            {
            }
            else if (type == SWNodeType.uv)
            {
                receiver = new SWShaderProcessReceiveUV();
            }
            else if (type == SWNodeType.alpha)
            {
                receiver = new SWShaderProcessReceiveAlpha();
            }
            else if (type == SWNodeType.remap)
            {
                receiver = new SWShaderProcessReceiveRemap();
            }
            else if (type == SWNodeType.blur)
            {
                receiver = new SWShaderProcessReceiveBlur();
            }
            else if (type == SWNodeType.retro)
            {
                receiver = new SWShaderProcessReceiveRetro();
            }


            else if (type == SWNodeType.coord)
            {
                receiver = new SWShaderProcessReceiveCoord();
            }
            else if (type == SWNodeType.dummy)
            {
            }
            else if (type == SWNodeType.code)
            {
            }
            return(receiver);
        }