Ejemplo n.º 1
0
        public static SceneNode DrawLine(SceneManager mSceneMgr, Vector3 start, Vector3 end)
        {
            ManualObject line     = mSceneMgr.CreateManualObject("line" + numLines);
            SceneNode    lineNode = mSceneMgr.RootSceneNode.CreateChildSceneNode("line" + numLines + "_node");

            MaterialPtr lineMaterial = MaterialManager.Singleton.Create("line" + numLines + "_material", "Default");

            lineMaterial.ReceiveShadows = false;
            lineMaterial.SetLightingEnabled(true);
            lineMaterial.SetDiffuse(LineColour.r, LineColour.g, LineColour.b, 0);
            lineMaterial.SetAmbient(LineColour.r, LineColour.g, LineColour.b);
            lineMaterial.SetSelfIllumination(LineColour.r, LineColour.g, LineColour.b);

            line.Begin("line" + numLines + "_material", RenderOperation.OperationTypes.OT_LINE_LIST);
            line.Position(start);
            line.Position(end);
            line.End();

            lineNode.AttachObject(line);
            ++numLines;
            return(lineNode);
        }
Ejemplo n.º 2
0
Archivo: Part.cs Proyecto: ext0/Flex
        private void LoadMaterials(bool forceUpdate = false)
        {
            if (_baseMaterialPtr == null || forceUpdate)
            {
                _baseMaterialPtr = _material.GetMaterial().Clone(_UUID + "/DynamicMesh/" + Guid.NewGuid());
            }
            if (_frontMaterialPtr == null || forceUpdate)
            {
                _frontMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Front");
            }
            if (_backMaterialPtr == null || forceUpdate)
            {
                _backMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Back");
            }
            if (_leftMaterialPtr == null || forceUpdate)
            {
                _leftMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Left");
            }
            if (_rightMaterialPtr == null || forceUpdate)
            {
                _rightMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Right");
            }
            if (_topMaterialPtr == null || forceUpdate)
            {
                _topMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Top");
            }
            if (_bottomMaterialPtr == null || forceUpdate)
            {
                _bottomMaterialPtr = _baseMaterialPtr.Clone(_baseMaterialPtr.Name + "/Bottom");
            }

            _textureScale = _material.TextureScaling();

            _frontMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_frontMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_frontMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _frontMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.x, _textureScale.y / size.y);

            _backMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_backMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_backMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _backMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.x, _textureScale.y / size.y);

            _leftMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_leftMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_leftMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _leftMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.y, _textureScale.y / size.z);

            _rightMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_rightMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_rightMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _rightMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.y, _textureScale.y / size.z);

            _topMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_topMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_topMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _topMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.x, _textureScale.y / size.z);

            _bottomMaterialPtr.SetAmbient(new ColourValue(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f));
            //_bottomMaterialPtr.SetDiffuse(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            //_bottomMaterialPtr.SetSpecular(_color.r / 255f, _color.g / 255f, _color.b / 255f, _color.transparency / 255f);
            _bottomMaterialPtr.GetTechnique(0).GetPass(0).GetTextureUnitState(0).SetTextureScale(_textureScale.x / size.x, _textureScale.y / size.z);
        }