Exemple #1
0
        private void RasterizeAndFragmentShader()
        {
            var usingPass = UsingPass;
            var drawState = usingPass.State;

            switch (drawState.PolygonMode)
            {
            case PolygonMode.Triangle:
                var len = trianglePrimitiveHelper.Count;
                for (int i = 0; i < len; i++)
                {
                    var t = trianglePrimitiveHelper[i];
                    //if (t.clip) continue;
                    // 光栅化成片段
                    Rasterizer.GenFragInfo(t, genShadedFragHelper, genWireframeFragHelper, genNormalLineFragHelper);
                    // 处理片段
                    InnerFragmentShader(genShadedFragHelper, genWireframeFragHelper, genNormalLineFragHelper);
                }
                break;

            case PolygonMode.Line:
                throw new Exception($"not implements polygonMode:{drawState.PolygonMode}");

            case PolygonMode.Point:
                throw new Exception($"not implements polygonMode:{drawState.PolygonMode}");

            default:
                throw new Exception($"not implements polygonMode:{drawState.PolygonMode}");
            }
        }