コード例 #1
0
        public SExplosionRenderManager(int particleCapacity = 500, SSTexture texture = null)
            : base(new SExplosionSystem(particleCapacity),
				   SSTexturedQuad.DoubleFaceInstance,
				   _defaultUsageHint)
        {
            renderState.castsShadow = false;
            renderState.receivesShadows = false;
            renderState.doBillboarding = false;
            renderState.alphaBlendingOn = true;
            //renderState.depthTest = true;
            renderState.depthTest = true;
            renderState.depthWrite = false;
            renderState.lighted = false;

            simulateOnUpdate = true;
            Name = "simple expolsion renderer";

            base.AmbientMatColor = new Color4 (1f, 1f, 1f, 1f);
            base.DiffuseMatColor = new Color4 (0f, 0f, 0f, 0f);
            base.EmissionMatColor = new Color4(0f, 0f, 0f, 0f);
            base.SpecularMatColor = new Color4 (0f, 0f, 0f, 0f);
            base.ShininessMatColor = 0f;

            var tex = texture ?? SExplosionSystem.getDefaultTexture();
            textureMaterial = new SSTextureMaterial(null, null, tex, null);
        }
コード例 #2
0
        public SExplosionRenderManager(int particleCapacity = 500, SSTexture texture = null)
            : base(new SExplosionSystem(particleCapacity),
                   SSTexturedQuad.DoubleFaceInstance,
                   _defaultUsageHint
                   )
        {
            renderState.castsShadow     = false;
            renderState.receivesShadows = false;
            renderState.doBillboarding  = false;
            renderState.alphaBlendingOn = true;
            //renderState.depthTest = true;
            renderState.depthTest  = true;
            renderState.depthWrite = false;
            renderState.lighted    = false;

            simulateOnUpdate = true;
            Name             = "simple expolsion renderer";

            base.AmbientMatColor   = new Color4(1f, 1f, 1f, 1f);
            base.DiffuseMatColor   = new Color4(0f, 0f, 0f, 0f);
            base.EmissionMatColor  = new Color4(0f, 0f, 0f, 0f);
            base.SpecularMatColor  = new Color4(0f, 0f, 0f, 0f);
            base.ShininessMatColor = 0f;

            var tex = texture ?? SExplosionSystem.getDefaultTexture();

            textureMaterial = new SSTextureMaterial(null, null, tex, null);
        }
コード例 #3
0
            public RenderSubMesh(SSSkeletalMesh skeletalMesh, SSSkeletalHierarchyRuntime hierarchy = null)
                : base(null, skeletalMesh.triangleIndices)
            {
                _runtimeMesh = new SSSkeletalMeshRuntime(skeletalMesh, hierarchy);

                _vertices = new SSVertex_PosNormTex[_runtimeMesh.numVertices];
                for (int v = 0; v < _runtimeMesh.numVertices; ++v)
                {
                    _vertices [v].TexCoord = _runtimeMesh.textureCoords(v);
                    _vertices [v].Normal   = _runtimeMesh.bindPoseNormal(v);
                }
                ComputeVertices();

                string matString = skeletalMesh.materialShaderString;

                if (matString != null && matString.Length > 0)
                {
                    base.textureMaterial
                        = SSTextureMaterial.FromMaterialString(skeletalMesh.assetContext, matString);
                }

                // don't use BVH because vertices keep changing on every render frame
                // TODO can we "update" BVH efficiently, instead?
                base.useBVHForIntersections = false;
            }