コード例 #1
0
 public override void Init()
 {
     model = ((Node)AssetManager.LoadModel(AssetManager.GetAppPath() + "\\models\\dome.obj")).GetChildGeom(0);
     model.Material.SetValue(Material.MATERIAL_FACETOCULL, 1);
     model.Material.SetValue(Material.MATERIAL_DEPTHMASK, false);
     model.Material.SetValue(Material.MATERIAL_DEPTHTEST, false);
     model.Material.Bucket = RenderManager.Bucket.Sky;
     model.SetShader(typeof(SkyShader));
     model.SetLocalScale(new Math.Vector3f(100f));
     rootNode.AddChild(model);
 }
コード例 #2
0
 static GrassPopulator()
 {
     model = ((Node)AssetManager.LoadModel(AssetManager.GetAppPath() + "\\models\\grass\\grass.obj")).GetChildGeom(0);
     model.Material.SetValue(Material.COLOR_DIFFUSE, new Vector4f(0.5f, 0.48f, 0.52f, 1f));
     model.Material.SetValue(Material.MATERIAL_BLENDMODE, 1);
     model.Material.SetValue(Material.MATERIAL_CASTSHADOWS, false);
     model.Material.SetValue(Material.MATERIAL_ALPHADISCARD, 0.2f);
     model.Material.SetValue(Material.SPECULAR_EXPONENT, 60);
     model.Material.SetValue(Material.SHININESS, 0.1f);
     model.Material.SetValue(Material.ROUGHNESS, 0.0f);
     model.Material.SetValue(Material.MATERIAL_CULLENABLED, false);
     model.Material.SetValue("fade_start", 30.0f);
     model.Material.SetValue("fade_end", 40.0f);
     model.Material.Bucket = RenderManager.Bucket.Transparent;
     model.SetShader(typeof(GrassShader));
 }
コード例 #3
0
        static TreePopulator()
        {
            /*  tree = (Node)AssetManager.LoadModel(AssetManager.GetAppPath() + "\\models\\tree\\pine\\LoblollyPine.obj");

            tree.GetChildGeom(1).Material.SetValue("tree_height", tree.GetLocalBoundingBox().Max.y);
            tree.GetChildGeom(1).SetShader(typeof(BarkShader));

            tree.GetChildGeom(1).DepthShader = ShaderManager.GetShader(typeof(BarkShader), new ShaderProperties()
                .SetProperty("DEPTH", true)
                .SetProperty(Material.TEXTURE_DIFFUSE, true));

            tree.GetChildGeom(2).Material.SetValue("tree_height", tree.GetLocalBoundingBox().Max.y);
            tree.GetChildGeom(2).Material.SetValue(Material.MATERIAL_BLENDMODE, 1);
            tree.GetChildGeom(2).Material.SetValue(Material.MATERIAL_CULLENABLED, false);
            tree.GetChildGeom(2).Material.SetValue(Material.MATERIAL_ALPHADISCARD, 0.7f);
            tree.GetChildGeom(2).Material.Bucket = Rendering.RenderManager.Bucket.Transparent;
            tree.GetChildGeom(2).SetShader(typeof(LeafShader));

            tree.GetChildGeom(2).DepthShader = ShaderManager.GetShader(typeof(LeafShader), new ShaderProperties()
                .SetProperty("DEPTH", true)
                .SetProperty(Material.TEXTURE_DIFFUSE, true));*/

            tree = new Node();

            Geometry g = new Geometry(MeshFactory.CreateQuad());
            g.SetLocalScale(new Vector3f(15));
            g.SetLocalTranslation(new Vector3f(0, 10, 0));
            g.Material.SetValue(Material.MATERIAL_CASTSHADOWS, 0);
            g.Material.SetValue(Material.MATERIAL_BLENDMODE, 1);
            g.Material.SetValue(Material.TEXTURE_DIFFUSE, AssetManager.LoadTexture(AssetManager.GetAppPath() + "\\models\\tree\\pine\\billboard.png"));
            g.Material.SetValue(Material.SHININESS, 0.0f);
            g.Material.SetValue(Material.MATERIAL_ALPHADISCARD, 0.5f);
            g.Material.Bucket = RenderManager.Bucket.Transparent;
            g.SetShader(typeof(GrassShader));
            g.Material.SetValue("fade_start", 250.0f);
            g.Material.SetValue("fade_end", 260.0f);
            tree.AddChild(g);
        }
コード例 #4
0
        private void NrmGenerator_Load(object sender, EventArgs e)
        {
            Mesh quadMesh = MeshFactory.CreateQuad();
            quadGeom = new Geometry(quadMesh);
            quadGeom.SetShader(ShaderManager.GetShader(typeof(NormalMapShader)));
            MtlViewerGame mtlPreview = new MtlViewerGame();
            mtlPreview.Rotate = false;
            mtlPreview.Camera.Enabled = false;
            mtlPreview.Camera.Width = 256;
            mtlPreview.Camera.Height = 256;

              //  mtlPreview.Camera = new ApexEngine.Rendering.Cameras.OrthoCamera(-2, 2, -2, 2, -2, 2);
            mtlPreview.Camera.Translation = new ApexEngine.Math.Vector3f(0, 0, -3);
            mtlPreview.RootNode.AddChild(quadGeom);
            ApexEngineControl mtlViewer = new ApexEngineControl(mtlPreview);
            mtlViewer.Framerate = 50;
            mtlViewer.Dock = DockStyle.Fill;
            pnlObj.Controls.Add(mtlViewer);

            quadGeom.Material.SetValue("delta_value", 5.0f);
            //mtlPreview.RenderManager.PostProcessor.PostFilters.Add(new BlurPostFilter(true));
            //mtlPreview.RenderManager.PostProcessor.PostFilters.Add(new BlurPostFilter(false));
        }
コード例 #5
0
ファイル: MeshUtil.cs プロジェクト: ajmd17/apexengine-sharp
 public static Geometry MergeGeometry(GameObject gameObject)
 {
     List<Mesh> meshes;
     List<Matrix4f> transforms = new List<Matrix4f>();
     List<Material> materials = new List<Material>();
     List<Shader> shaders = new List<Shader>();
     meshes = RenderUtil.GatherMeshes(gameObject, materials, transforms, shaders);
     Mesh m =  MergeMeshes(meshes, materials, transforms);
     Geometry geom = new Geometry(m);
     if (shaders.Count > 0)
         geom.SetShader(shaders[0]);
     if (materials.Count > 0)
         geom.Material = materials[0];
     return geom;
 }