public static WaterBackgroundRenderer Create(int waterPlaneLength) { var model = new Sphere(waterPlaneLength / 2.0f + 0.5f, 20, 80); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\water\Background.vert.glsl"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\water\Background.frag.glsl"), ShaderType.FragmentShader); var map = new AttributeMap(); map.Add("a_vertex", PlaneModel.strPosition); //map.Add("a_normal", PlaneModel.strNormal); var renderer = new WaterBackgroundRenderer(model, shaderCodes, map, new FrontFaceState(FrontFaceMode.CW)); renderer.ModelSize = new vec3(waterPlaneLength + 1, waterPlaneLength + 1, waterPlaneLength + 1); return(renderer); }
public static WaterRenderer Create(int waterPlaneLength) { var model = new WaterPlaneModel(waterPlaneLength); var shaderCodes = new ShaderCode[2]; shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\water\Water.vert.glsl"), ShaderType.VertexShader); shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\water\Water.frag.glsl"), ShaderType.FragmentShader); var map = new AttributeMap(); map.Add("a_vertex", WaterPlaneModel.strPosition); var renderer = new WaterRenderer(model, shaderCodes, map, new FrontFaceSwitch(FrontFaceMode.CCW)); renderer.waterTextureRenderer = WaterTextureRenderer.Create(waterPlaneLength); renderer.backgroundRenderer = WaterBackgroundRenderer.Create(waterPlaneLength); renderer.Lengths = new vec3(waterPlaneLength + 1, waterPlaneLength + 1, waterPlaneLength + 1); renderer.waterPlaneLength = waterPlaneLength; return(renderer); }