public BCH_Model() { GL.GenBuffers(1, out vbo_vert); GL.GenBuffers(1, out vbo_bone); GL.GenBuffers(1, out ibo_faces); ImageKey = "model"; SelectedImageKey = "model"; ContextMenu cm = new ContextMenu(); MenuItem im = new MenuItem("Import DAE"); im.Click += Import; cm.MenuItems.Add(im); MenuItem save = new MenuItem("Save as MBN"); save.Click += Click; cm.MenuItems.Add(save); ContextMenu = cm; if (!Runtime.shaders.ContainsKey("MBN")) { ShaderTools.CreateShader("MBN", "/lib/Shader/Legacy/", "/lib/Shader/"); } Runtime.shaders["MBN"].DisplayCompilationWarning("MBN"); if (shader == null) { shader = new Shader(); shader = Runtime.shaders["MBN"]; } }
public BCH_Model() { GL.GenBuffers(1, out vbo_vert); GL.GenBuffers(1, out vbo_bone); GL.GenBuffers(1, out ibo_faces); ImageKey = "model"; SelectedImageKey = "model"; ContextMenu cm = new ContextMenu(); MenuItem im = new MenuItem("Import DAE"); im.Click += Import; cm.MenuItems.Add(im); MenuItem save = new MenuItem("Save as MBN"); save.Click += Click; cm.MenuItems.Add(save); ContextMenu = cm; if (!ShaderTools.hasSetupShaders) { ShaderTools.SetupShaders(); } Runtime.shaders["Mbn"].DisplayCompilationWarnings("Mbn"); if (shader == null) { shader = new Shader(); shader = Runtime.shaders["Mbn"]; } }
static bool CheckShader() { string[] shaders = _packTools.GetAssetsByBundle(ResourceConst.bundleShader); List <string> shader_infos = ShaderTools.CheckShaderLods(shaders); if (shader_infos == null || shader_infos.Count < 1) { return(true); } string info = string.Format("{0}个Shader LOD检测非法,打包停止,详情请看Log", shader_infos.Count); foreach (string shader_info in shader_infos) { Debug.LogError(shader_info); if (shader_infos.Count <= 5) { info = string.Format("{0}\n{1}", info, shader_info); } } EditorUtility.DisplayDialog("Shader检测失败", info, "停止打包"); return(false); }
private Texture2DShader() { var vsBytes = ShaderTools.LoadBytecode(GraphicsBackend.Vulkan, "BasicTextureShader", ShaderStages.Vertex); var fsBytes = ShaderTools.LoadBytecode(GraphicsBackend.Vulkan, "BasicTextureShader", ShaderStages.Fragment); VertexShaderDescription = new ShaderDescription(ShaderStages.Vertex, vsBytes, "main", true); FragmentShaderDescription = new ShaderDescription(ShaderStages.Fragment, fsBytes, "main", true); }
private Vertex2Color4Shader() { var vsBytes = ShaderTools.LoadBytecode(GraphicsBackend.Vulkan, "Vertex2Color4", ShaderStages.Vertex); var fsBytes = ShaderTools.LoadBytecode(GraphicsBackend.Vulkan, "Vertex2Color4", ShaderStages.Fragment); VertexShaderDescription = new ShaderDescription(ShaderStages.Vertex, vsBytes, "main", true); FragmentShaderDescription = new ShaderDescription(ShaderStages.Fragment, fsBytes, "main", true); }
private Vertex2Color4Shader() { var vertexShaderBytes = ShaderTools.LoadShaderBytes(DisplaySettings.Instance.GraphicsBackend, typeof(Vertex2Color4Shader).Assembly, "Vertex2Color4ShaderSource", ShaderStages.Vertex); var fragmentShaderBytes = ShaderTools.LoadShaderBytes(DisplaySettings.Instance.GraphicsBackend, typeof(Vertex2Color4Shader).Assembly, "Vertex2Color4ShaderSource", ShaderStages.Fragment); VertexShaderDescription = new ShaderDescription(ShaderStages.Vertex, vertexShaderBytes, "VS"); FragmentShaderDescription = new ShaderDescription(ShaderStages.Fragment, fragmentShaderBytes, "FS"); }
private Texture2DShader() { var vertexShaderBytes = ShaderTools.LoadShaderBytes(DisplaySettings.Instance.GraphicsBackend, typeof(TextNode).Assembly, "BasicTextureShader", ShaderStages.Vertex); var fragmentShaderBytes = ShaderTools.LoadShaderBytes(DisplaySettings.Instance.GraphicsBackend, typeof(TextNode).Assembly, "BasicTextureShader", ShaderStages.Fragment); VertexShaderDescription = new ShaderDescription(ShaderStages.Vertex, vertexShaderBytes, "VS"); FragmentShaderDescription = new ShaderDescription(ShaderStages.Fragment, fragmentShaderBytes, "FS"); }
public static void SetLightingUniforms(Shader shader, Camera camera) { // fresnel sky/ground color for characters & stages ShaderTools.LightColorVector3Uniform(shader, Runtime.lightSetParam.fresnelLight.groundColor, "fresGroundColor"); ShaderTools.LightColorVector3Uniform(shader, Runtime.lightSetParam.fresnelLight.skyColor, "fresSkyColor"); shader.SetVector3("fresSkyDirection", Runtime.lightSetParam.fresnelLight.getSkyDirection()); shader.SetVector3("fresGroundDirection", Runtime.lightSetParam.fresnelLight.getGroundDirection()); // reflection color for characters & stages float refR, refG, refB = 1.0f; ColorTools.HsvToRgb(Runtime.reflectionHue, Runtime.reflectionSaturation, Runtime.reflectionIntensity, out refR, out refG, out refB); shader.SetVector3("refLightColor", refR, refG, refB); // character diffuse lights shader.SetVector3("difLightColor", Runtime.lightSetParam.characterDiffuse.diffuseColor.R, Runtime.lightSetParam.characterDiffuse.diffuseColor.G, Runtime.lightSetParam.characterDiffuse.diffuseColor.B); shader.SetVector3("ambLightColor", Runtime.lightSetParam.characterDiffuse.ambientColor.R, Runtime.lightSetParam.characterDiffuse.ambientColor.G, Runtime.lightSetParam.characterDiffuse.ambientColor.B); shader.SetVector3("difLightColor2", Runtime.lightSetParam.characterDiffuse2.diffuseColor.R, Runtime.lightSetParam.characterDiffuse2.diffuseColor.G, Runtime.lightSetParam.characterDiffuse2.diffuseColor.B); shader.SetVector3("ambLightColor2", Runtime.lightSetParam.characterDiffuse2.ambientColor.R, Runtime.lightSetParam.characterDiffuse2.ambientColor.G, Runtime.lightSetParam.characterDiffuse2.ambientColor.B); shader.SetVector3("difLightColor3", Runtime.lightSetParam.characterDiffuse3.diffuseColor.R, Runtime.lightSetParam.characterDiffuse3.diffuseColor.G, Runtime.lightSetParam.characterDiffuse3.diffuseColor.B); shader.SetVector3("ambLightColor3", Runtime.lightSetParam.characterDiffuse3.ambientColor.R, Runtime.lightSetParam.characterDiffuse3.ambientColor.G, Runtime.lightSetParam.characterDiffuse3.ambientColor.B); // character specular light shader.SetVector3("specLightColor", LightTools.specularLight.diffuseColor.R, LightTools.specularLight.diffuseColor.G, LightTools.specularLight.diffuseColor.B); // stage fog shader.SetBoolToInt("renderFog", Runtime.renderFog); shader.SetVector3("difLight2Direction", Runtime.lightSetParam.characterDiffuse2.direction); shader.SetVector3("difLight3Direction", Runtime.lightSetParam.characterDiffuse2.direction); if (Runtime.cameraLight) { // Camera light should only affect character lighting. Matrix4 invertedCamera = camera.MvpMatrix.Inverted(); Vector3 lightDirection = new Vector3(0f, 0f, -1f); shader.SetVector3("lightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); shader.SetVector3("specLightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); shader.SetVector3("difLightDirection", Vector3.TransformNormal(lightDirection, invertedCamera).Normalized()); } else { shader.SetVector3("specLightDirection", LightTools.specularLight.direction); shader.SetVector3("difLightDirection", Runtime.lightSetParam.characterDiffuse.direction); } }
static void Init() { ShaderTools window = (ShaderTools)EditorWindow.GetWindow(typeof(ShaderTools)); }
private void checkShaderErrorsToolStripMenuItem_Click(object sender, EventArgs e) { ShaderTools.SaveErrorLogs(); }