2 using System.Diagnostics;
4 using System.Threading.Tasks;
6 using SiliconStudio.Paradox.DataModel;
7 using SiliconStudio.Paradox.Effects.Modules;
9 using Paradox.Effects.Yebis;
11 using SiliconStudio.Paradox.Games;
12 using SiliconStudio.Paradox;
13 using SiliconStudio.Paradox.Effects;
14 using SiliconStudio.Core.Extensions;
15 using SiliconStudio.Paradox.Graphics;
16 using SiliconStudio.Paradox.Graphics.Data;
17 using SiliconStudio.Paradox.Games.IO;
18 using SiliconStudio.Paradox.Games.MicroThreading;
19 using SiliconStudio.Paradox.Games.Mathematics;
20 using Paradox.Framework.Shaders;
34 public EffectMesh
Mesh;
47 public static async
Task Run(EngineContext engineContext)
50 renderingSetup.Initialize(engineContext);
51 renderingSetup.RegisterLighting(engineContext);
56 if (engineContext.DataContext.RenderPassPlugins.TryGetValueCast(
"YebisPlugin", out yebisPlugin))
58 yebisPlugin.Glare.Enable =
true;
59 yebisPlugin.ToneMap.Exposure = 1.0f;
60 yebisPlugin.ToneMap.Gamma = 2.2f;
64 EffectOld effect = engineContext.RenderContext.BuildEffect(
"SimpleCube")
65 .Using(
new BasicShaderPlugin(
"ShaderBase") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
66 .Using(
new BasicShaderPlugin(
"TransformationWVP") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
67 .Using(
new BasicShaderPlugin(
"AlbedoSpecularBase") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
68 .Using(
new BasicShaderPlugin(
"AlbedoDiffuseBase") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
69 .Using(
new BasicShaderPlugin(
"NormalVSGBuffer") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
70 .Using(
new BasicShaderPlugin(
"SpecularPowerPerMesh") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
71 .Using(
new BasicShaderPlugin(
"PositionVSGBuffer") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
72 .Using(
new BasicShaderPlugin(
"BRDFDiffuseLambert") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
73 .Using(
new BasicShaderPlugin(
"BRDFSpecularBlinnPhong") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
74 .Using(
new BasicShaderPlugin(
new ShaderMixinSource() {
75 new ShaderComposition(
"albedoDiffuse",
new ShaderClassSource(
"ComputeColorStream"))}) {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
76 .Using(
new BasicShaderPlugin(
new ShaderMixinSource() {
77 new ShaderComposition(
"albedoSpecular",
new ShaderClassSource(
"ComputeColorSynthetic"))}) {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
80 .Using(
new BasicShaderPlugin(
"LightDirectionalShading") {
RenderPassPlugin = renderingSetup.MainTargetPlugin })
86 var r =
new Random(0);
89 VirtualFileSystem.MountFileSystem(
"/global_data",
"..\\..\\deps\\data\\");
90 VirtualFileSystem.MountFileSystem(
"/global_data2",
"..\\..\\data\\");
93 if (engineContext.DataContext.RenderPassPlugins.TryGetValueCast(
"SkyBoxPlugin", out skyBoxPlugin))
95 var skyBoxTexture = (
Texture2D)await engineContext.AssetManager.LoadAsync<
Texture>(
"/global_data/gdc_demo/bg/GDC2012_map_sky.dds");
96 skyBoxPlugin.Texture = skyBoxTexture;
99 var effectMeshGroup =
new RenderPassListEnumerator();
100 engineContext.RenderContext.RenderPassEnumerators.Add(effectMeshGroup);
102 var groundMesh =
new EffectMesh(effect, MeshDataHelper.CreateBox(10000, 10000, 1,
Color.White));
103 groundMesh.KeepAliveBy(engineContext.SimpleComponentRegistry);
104 effectMeshGroup.AddMesh(groundMesh);
105 groundMesh.Parameters.Set(TransformationKeys.World, Matrix.Translation(
new Vector3(0, 0, 0)));
107 var meshData = MeshDataHelper.CreateSphere(200, 30, 30, Color.Gray);
108 var sphereMesh =
new EffectMesh(effect, meshData);
109 sphereMesh.Parameters.Set(TransformationKeys.World,Matrix.Translation(
new Vector3(0, 0, 50)));
110 sphereMesh.Parameters.Set(MaterialKeys.SpecularPower, 0f);
111 sphereMesh.Parameters.Set(MaterialKeys.SpecularColor, Color.White);
112 effectMeshGroup.AddMesh(sphereMesh);
static async Task Run(EngineContext engineContext)
Plugin used to render to a GBuffer from a MainPlugin.
Shader effect used with GBufferPlugin
static readonly RenderingSetup Singleton
SiliconStudio.Core.Mathematics.Color Color
A Texture 2D frontend to SharpDX.Direct3D11.Texture2D.
SiliconStudio.Core.Mathematics.Vector3 Vector3
Base class for texture resources.