我的github
            string vs =
                @"#version 330

                  layout(location = og_positionVertexLocation) in vec4 position;
                  uniform mat4 og_modelViewPerspectiveMatrix;

                  void main()                     
                  {
                        gl_Position = og_modelViewPerspectiveMatrix * position; 
                  }";

            string fs =
                @"#version 330
                 
                  out vec3 fragmentColor;
                  uniform vec3 u_color;

                  void main()
                  {
                      fragmentColor = u_color;
                  }";
            ShaderProgram sp = Device.CreateShaderProgram(vs, fs);
            ((Uniform<Vector3F>)sp.Uniforms["u_color"]).Value = new Vector3F(1, 0, 0);

代码来源:3D Engine Design for Virtual Globe.pdf配套代码Triangle.cs

参考1:https://www.khronos.org/opengl/wiki/Vertex_Shader#Input

参考2:https://www.cnblogs.com/virhuabbs/p/16624259.html

参考3:https://www.bilibili.com/read/cv17388210/

Mesh的顶点(圆点,以1为半径):红色。glDrawArrays:mode=gl_points

Mesh的边(线,宽度为0.5):蓝色。glDrawArrays::mode=gl_lines

Mesh的面():绿色。glDrawArrays:mode=gl_triangles

如何实现:上述3种着色的结果,把地球以Mesh的线框+顶点+面片形式展示出来?

是不是需要建立3种着色器。。?一种给点,一种给线,一种给面。。?

参考:https://blog.csdn.net/weixin_45782925/article/details/124853704

参考:https://zhuanlan.zhihu.com/p/25595069

posted on 2023-05-26 15:01  XiaoNiuFeiTian  阅读(24)  评论(0编辑  收藏  举报