public void init() { string path = "RootGo/AgentGo"; this.selfGo = UtilApi.GoFindChildByPObjAndName(path); m_mazePlayerTrackAniControl = new MazePlayerTrackAniControl(this); m_sceneEffect = Ctx.m_instance.m_sceneEffectMgr.addSceneEffect(31, this.selfGo, false, true, true); m_sceneEffect.setKeepLastFrame(true); }
//シーン遷移時の関数 private IEnumerator SceneChange(string nextScene) { SceneEffect sceneEfect = GameObject.Find("BlackOut").GetComponent <SceneEffect>(); sceneEfect.startSceneChange = true; yield return(new WaitForSeconds(1.0f)); SceneManager.LoadScene(nextScene); }
public Scene(GameContext context, SceneEffect effect) { _device = context.GraphicsDevice; _sceneRenderer = new DefaultSceneRenderer(context, effect); _allNodes = new List<SceneNode>(); _allCameras = new List<Camera>(); LightDirection = new Vector3(1, -1, -1); _spriteBatch = new SpriteBatch(_device); }
void Start() { SceneE = GetComponent <SceneEffect>(); SceneE.InitSceneObject(); MainPlayer.name = "MainPlayer"; MainPlayer.transform.position = SceneE.SceneNpcPos.StartPos; Camera.main.transform.position = new Vector3(MainPlayer.transform.position.x + 3.5f, MainPlayer.transform.position.y + 5.0f, MainPlayer.transform.position.z + 3.5f); Camera.main.transform.eulerAngles = new Vector3(45.0f, 225.0f, 0); }
public RenderQueue(GameContext context, Action<Material> handleEffect, Func<IList<DrawableElement>> getDrawableElements, SceneEffect sceneEffect) : base(context) { _handleEffect = handleEffect; _getDrawableElements = getDrawableElements; SceneEffect = sceneEffect; IsEnabled = true; _device = context.GetService<GraphicsDevice>(); }
public RenderQueue(GameContext context, Action <Material> handleEffect, Func <IList <DrawableElement> > getDrawableElements, SceneEffect sceneEffect) : base(context) { _handleEffect = handleEffect; _getDrawableElements = getDrawableElements; SceneEffect = sceneEffect; IsEnabled = true; _device = context.GetService <GraphicsDevice>(); }
public ForwardSceneRenderer(GameContext context, SceneEffect effect, RenderSettings settings) : base(context) { _device = context.GetService <GraphicsDevice>(); _sceneEffect = effect; RenderSettings = settings; _allDrawables = new List <DrawableElement>(); _initializingDrawables = new List <DrawableElement>(); _allCameras = new List <Camera>(); _allLights = new List <Light>(); _directionalLightShadowMap = new RenderTarget2D(_device, RenderSettings.ShadowMapSize, RenderSettings.ShadowMapSize, false, SurfaceFormat.Single, DepthFormat.Depth24); var width = context.ScreenBounds.Width; var height = context.ScreenBounds.Height; _activeInputSource = new RenderTarget2D(_device, width, height, false, SurfaceFormat.Color, DepthFormat.Depth24, 0, RenderTargetUsage.PlatformContents); _activeRenderTarget = new RenderTarget2D(_device, width, height, false, SurfaceFormat.Color, DepthFormat.Depth24, 0, RenderTargetUsage.PlatformContents); _shadowCasterQueueSolid = new RenderQueue(context, HandleShadowCasterObjects, GetShadowCasterSceneNodes, _sceneEffect) { BlendState = BlendState.Opaque, DepthStencilState = DepthStencilState.Default, RasterizerState = RasterizerState.CullCounterClockwise, IsEnabled = true, SortNodesBackToFront = false, }; _shadowCasterQueueTransparent = new RenderQueue(context, HandleShadowCasterObjects, GetShadowCasterSceneNodesTransparent, _sceneEffect) { BlendState = BlendState.AlphaBlend, DepthStencilState = DepthStencilState.DepthRead, RasterizerState = RasterizerState.CullCounterClockwise, IsEnabled = true, SortNodesBackToFront = true, }; _renderQueues = new List <RenderQueue> { new RenderQueue(context, HandleSolidObjects, GetSolidObjects, _sceneEffect) { DepthStencilState = DepthStencilState.Default, BlendState = BlendState.Opaque, RasterizerState = RasterizerState.CullCounterClockwise, }, new RenderQueue(context, HandleEffectTransparentObjects, GetTransparentObjects, _sceneEffect) { DepthStencilState = DepthStencilState.DepthRead, BlendState = BlendState.AlphaBlend, RasterizerState = RasterizerState.CullCounterClockwise, SortNodesBackToFront = true } }; }
public ForwardSceneRenderer(GameContext context, SceneEffect effect, RenderSettings settings) : base(context) { _device = context.GetService<GraphicsDevice>(); _sceneEffect = effect; RenderSettings = settings; _allDrawables = new List<DrawableElement>(); _initializingDrawables = new List<DrawableElement>(); _allCameras = new List<Camera>(); _allLights = new List<Light>(); _directionalLightShadowMap = new RenderTarget2D(_device, RenderSettings.ShadowMapSize, RenderSettings.ShadowMapSize, false, SurfaceFormat.Single, DepthFormat.Depth24); var width = context.ScreenBounds.Width; var height = context.ScreenBounds.Height; _activeInputSource = new RenderTarget2D(_device, width, height, false, SurfaceFormat.Color, DepthFormat.Depth24, 0, RenderTargetUsage.PlatformContents); _activeRenderTarget = new RenderTarget2D(_device, width, height, false, SurfaceFormat.Color, DepthFormat.Depth24, 0, RenderTargetUsage.PlatformContents); _shadowCasterQueueSolid = new RenderQueue(context, HandleShadowCasterObjects, GetShadowCasterSceneNodes, _sceneEffect) { BlendState = BlendState.Opaque, DepthStencilState = DepthStencilState.Default, RasterizerState = RasterizerState.CullCounterClockwise, IsEnabled = true, SortNodesBackToFront = false, }; _shadowCasterQueueTransparent = new RenderQueue(context, HandleShadowCasterObjects, GetShadowCasterSceneNodesTransparent, _sceneEffect) { BlendState = BlendState.AlphaBlend, DepthStencilState = DepthStencilState.DepthRead, RasterizerState = RasterizerState.CullCounterClockwise, IsEnabled = true, SortNodesBackToFront = true, }; _renderQueues = new List<RenderQueue> { new RenderQueue(context, HandleSolidObjects, GetSolidObjects, _sceneEffect) { DepthStencilState = DepthStencilState.Default, BlendState = BlendState.Opaque, RasterizerState = RasterizerState.CullCounterClockwise, }, new RenderQueue(context, HandleEffectTransparentObjects, GetTransparentObjects, _sceneEffect) { DepthStencilState = DepthStencilState.DepthRead, BlendState = BlendState.AlphaBlend, RasterizerState = RasterizerState.CullCounterClockwise, SortNodesBackToFront = true } }; }
internal static void DrawElement(Camera camera, DrawableElement element, SceneEffect sceneEffect, float yRotationForBillboards) { sceneEffect.World = element.GetWorldMatrix(camera.GlobalEulerAngles.Y); sceneEffect.WorldLight = element.GetWorldMatrix(yRotationForBillboards); sceneEffect.DiffuseTexture = element.Material.DiffuseTexture; sceneEffect.TexcoordScale = element.Material.TexcoordScale; sceneEffect.TexcoordOffset = element.Material.TexcoordOffset; sceneEffect.MaterialColor = element.Material.Color; for (var i = 0; i < sceneEffect.CurrentTechniquePasses.Count; i++) { sceneEffect.CurrentTechniquePasses[i].Apply(); element.Mesh.Draw(); } }
void Awake() { Ins = this; GenNewScene = false; PathFind = new PF.Pathfinder(); SceneNpcPos = new GameCharactorPos(); SDoor = new ArrayList(); RenderSettings.fog = true; RenderSettings.fogMode = FogMode.ExponentialSquared; RenderSettings.fogColor = Camera.main.backgroundColor; RenderSettings.fogDensity = 0.06f; }
protected override void LoadContent() { /************************************************************************/ /* JACOB LOADING SHIT LOL */ /************************************************************************/ /************************************************************************/ /************************************************************************ * HACK TODO: * Load the scene effects in from some sort of data file. * * Jay Sternfield - 2011/11/09 ************************************************************************/ /// Add static scene effects. SceneEffect effect = new SceneEffect(); effect.effect = Content.Load<BaseRenderableEffect>("Materials/Forward/background"); effect.size = new Vector2(200, 200f); effect.position = Vector2.Zero; effect.depth = 400.0f; effect.rotation = MathHelper.Pi; mStaticSceneEffects.Add(effect); music = Content.Load<SoundEffect>("kat_final"); //int center = mWorldSize / 2; //for (int x = 0; x < mWorldSize; x++) //{ // for (int y = 0; y < mWorldSize; y++) // { // SceneEffect effect = new SceneEffect(); // effect.effect = Content.Load<BaseRenderableEffect>("Materials/Forward/tile_floor"); // effect.size = Vector2.One; // effect.position = new Vector2(x-center, y-center); // effect.depth = 1.0f; // mStaticSceneEffects.Add(effect); // } //} base.LoadContent(); //SynapseGaming.LightingSystem.Rendering.Scene rig = Content.Load<SynapseGaming.LightingSystem.Rendering.Scene>("Sunburn/light_rig"); //mSceneInterface.Submit(rig); mMenuScreenTextures.Add(GameStateManager_cl.GameState.GAME_STATE_LOADING, Content.Load<Texture2D>("Textures/titleBird")); mMenuScreenTextures.Add(GameStateManager_cl.GameState.GAME_STATE_LOADING_2, Content.Load<Texture2D>("Textures/title")); mEnvironment = Content.Load<SceneEnvironment>("Sunburn/scene_environment"); }
public static SceneRenderer Create(GameContext gameContext, SceneEffect effect, RenderSettings settings) { return(new ForwardSceneRenderer(gameContext, effect, settings)); }
private void ParseEffect(Scene scene, XElement effect) { var sceneEffect = new SceneEffect(); this.ParseIdAndName(effect, sceneEffect); var profileCommon = effect.Element(this.schema.profileCommonName); if (profileCommon != null) { var technique = profileCommon.Element(this.schema.techniqueName); if (technique != null) { var techniqueImpl = technique.Element(this.schema.phongName); if (techniqueImpl == null) { techniqueImpl = technique.Element(this.schema.lambertName); if (techniqueImpl == null) { techniqueImpl = technique.Element(this.schema.blinnName); if (techniqueImpl == null) { techniqueImpl = technique.Element(this.schema.constantName); if (techniqueImpl == null) { throw new DaeException(string.Format("Unknow technique at {0}", scene.Name)); } } } } sceneEffect.Diffuse = this.ParseColorSource(scene, techniqueImpl.Element(this.schema.diffuseName)); } } scene.Effects.Add(sceneEffect); }
//オープニングシーンのムービーのコルーチン private IEnumerator OPScene() { //明転開始 sceneEffect = GameObject.Find("BlackOut").GetComponent <SceneEffect>(); sceneEffect.startLightUp = true; yield return(new WaitForSeconds(2.0f)); //明転終了 sceneEffect.startLightUp = false; //メッセージ表示 messageManager.k = 0; messageManager.n = 1; messageManager.startMessageTrigger = true; //メッセージ表示終了 yield return(new WaitUntil(EndMessage)); messageManager.isEndMessage = false; //暗転開始 sceneEffect.startBlackOut = true; yield return(new WaitForSeconds(2.0f)); //シーン遷移 SceneManager.LoadScene("OPScene2"); //背景のスクロール yield return(new WaitForSeconds(0.1f)); backGround = GameObject.Find("BackGround"); movieNumber = 0; yield return(new WaitForSeconds(2.0f)); //メッセージ表示 messageManager.k = 2; messageManager.n = 2; messageManager.startMessageTrigger = true; //メッセージ表示終了 yield return(new WaitUntil(EndMessage)); messageManager.isEndMessage = false; //爆発音とエフェクト yield return(new WaitForSeconds(1.0f)); //背景のスクロールの停止 movieNumber = -1; //メッセージ表示 messageManager.k = 3; messageManager.n = 4; messageManager.startMessageTrigger = true; //メッセージ表示終了 yield return(new WaitUntil(EndMessage)); messageManager.isEndMessage = false; //暗転、背景のスクロール開始 scroll = 0.3f; movieNumber = 0; sceneEffect = GameObject.Find("BlackOut").GetComponent <SceneEffect>(); sceneEffect.startSceneChange = true; yield return(new WaitForSeconds(1.0f)); movieNumber = -1; //オープニングシーン終了 endOPMV = true; }
public DefaultSceneRenderer(GameContext context, SceneEffect effect) { _device = context.GraphicsDevice; _sceneEffect = effect; _shadowMap = new RenderTarget2D(context.GraphicsDevice, 1024, 1024, false, SurfaceFormat.Single, DepthFormat.Depth24); }
protected override void LoadContent() { /************************************************************************/ /* JACOB LOADING SHIT LOL */ /************************************************************************/ /************************************************************************/ /************************************************************************ * HACK TODO: * Load the scene effects in from some sort of data file. * * Jay Sternfield - 2011/11/09 ************************************************************************/ /// Add static scene effects. SceneEffect effect = new SceneEffect(); effect.effect = Content.Load<BaseRenderableEffect>("Materials/Forward/concept7"); effect.size = new Vector2(750, 482f); effect.position = Vector2.Zero; effect.depth = 400.0f; effect.rotation = MathHelper.Pi; mStaticSceneEffects.Add(effect); //int center = mWorldSize / 2; //for (int x = 0; x < mWorldSize; x++) //{ // for (int y = 0; y < mWorldSize; y++) // { // SceneEffect effect = new SceneEffect(); // effect.effect = Content.Load<BaseRenderableEffect>("Materials/Forward/tile_floor"); // effect.size = Vector2.One; // effect.position = new Vector2(x-center, y-center); // effect.depth = 1.0f; // mStaticSceneEffects.Add(effect); // } //} base.LoadContent(); //SynapseGaming.LightingSystem.Rendering.Scene rig = Content.Load<SynapseGaming.LightingSystem.Rendering.Scene>("Sunburn/light_rig"); //mSceneInterface.Submit(rig); mEnvironment = Content.Load<SceneEnvironment>("Sunburn/scene_environment"); }
private IMaterial ParseMaterial(AseParser parser, Scene scene) { var sceneEffect = new SceneEffect() {CullMode = CullMode.Front}; var m = new SceneMaterial { Effect = sceneEffect }; parser.Consume("{"); for (;;) { var attr = parser.Consume(); if (attr == null || attr == "}") { break; } if (0 == string.Compare(attr, "*MATERIAL_NAME", StringComparison.InvariantCultureIgnoreCase)) { m.Id = m.Name = sceneEffect.Id = sceneEffect.Name = parser.Consume(); continue; } if (0 == string.Compare(attr, "*MATERIAL_CLASS", StringComparison.InvariantCultureIgnoreCase)) { parser.Consume(); continue; } if (0 == string.Compare(attr, "*MATERIAL_AMBIENT", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Ambient = new SolidColorSource { Color = ParseColor(parser) }; continue; } if (0 == string.Compare(attr, "*MATERIAL_DIFFUSE", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Diffuse = new SolidColorSource { Color = ParseColor(parser) }; continue; } if (0 == string.Compare(attr, "*MATERIAL_SPECULAR", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Specular = new SolidColorSource { Color = ParseColor(parser) }; continue; } if (0 == string.Compare(attr, "*MATERIAL_SHINE", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Shininess = parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_SHINESTRENGTH", StringComparison.InvariantCultureIgnoreCase)) { parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_TRANSPARENCY", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Transparency = parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_WIRESIZE", StringComparison.InvariantCultureIgnoreCase)) { parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_XP_FALLOFF", StringComparison.InvariantCultureIgnoreCase)) { parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_SELFILLUM", StringComparison.InvariantCultureIgnoreCase)) { parser.ConsumeFloat(); continue; } if (0 == string.Compare(attr, "*MATERIAL_SHADING", StringComparison.InvariantCultureIgnoreCase)) { parser.Consume(); continue; } if (0 == string.Compare(attr, "*MATERIAL_FALLOFF", StringComparison.InvariantCultureIgnoreCase)) { parser.Consume(); continue; } if (0 == string.Compare(attr, "*MATERIAL_XP_TYPE", StringComparison.InvariantCultureIgnoreCase)) { parser.Consume(); continue; } if (0 == string.Compare(attr, "*MAP_AMBIENT", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Ambient = this.ParseMap(parser, scene); continue; } if (0 == string.Compare(attr, "*MAP_DIFFUSE", StringComparison.InvariantCultureIgnoreCase)) { sceneEffect.Diffuse = this.ParseMap(parser, scene); continue; } if (0 == string.Compare(attr, "*NUMSUBMTLS", StringComparison.InvariantCultureIgnoreCase)) { var numMaterials = parser.ConsumeInt(); continue; } if (0 == string.Compare(attr, "*SUBMATERIAL", StringComparison.InvariantCultureIgnoreCase)) { var index = parser.ConsumeInt(); while (m.Submaterials.Count <= index) m.Submaterials.Add(null); var subm = ParseMaterial(parser, scene); m.Submaterials[index] = subm; continue; } parser.UnknownLexemError(); } return m; }
public static SceneRenderer Create(GameContext gameContext, SceneEffect effect, RenderSettings settings) { return new ForwardSceneRenderer(gameContext, effect, settings); }
public IMaterial CreateMaterial(BspMaterialKey material) { var baseFileName = this.GetMaterialFileName(material.Material); var imagePath = baseFileName; var texture = new FileReferenceImage { Path = imagePath }; this.Scene.Images.Add(texture); var effect = new SceneEffect { CullMode = CullMode.None, //Diffuse = new ImageColorSource { Image = texture } }; this.Scene.Effects.Add(effect); var sceneMaterial = new SceneMaterial { Effect = effect }; this.Scene.Materials.Add(sceneMaterial); return sceneMaterial; }
private void BuildSubmeshes(int maxTextures, SeparateStreamsSubmesh[] submeshes, SeparateStreamsMesh streamMesh, BspMeshStreams meshStreams) { int[] textureToMaterial = new int[maxTextures]; foreach (var quake3Face in this.faces) { ++textureToMaterial[quake3Face.texinfo_id]; } for (int i = 0; i < maxTextures; ++i) { if (textureToMaterial[i] > 0) { submeshes[i] = streamMesh.CreateSubmesh(); int index = this.Scene.Materials.Count; var baseFileName = Path.Combine(this.GameRootPath, this.textures[i].name); var imagePath = baseFileName; if (!File.Exists(imagePath)) { imagePath = baseFileName + ".jpg"; if (!File.Exists(imagePath)) { imagePath = baseFileName + ".png"; if (!File.Exists(imagePath)) { imagePath = baseFileName + ".tga"; if (!File.Exists(imagePath)) { imagePath = this.textures[i].name; } } } } var texture = new FileReferenceImage { Path = imagePath }; this.Scene.Images.Add(texture); var effect = new SceneEffect { Diffuse = new ImageColorSource { Image = texture }, CullMode = CullMode.Front}; this.Scene.Effects.Add(effect); var sceneMaterial = new SceneMaterial { Effect = effect }; this.Scene.Materials.Add(sceneMaterial); submeshes[i].Material = sceneMaterial; textureToMaterial[i] = index; } } }