3D可视化开发(基于顶点着色器和片元着色器)
背景:最近在做大屏的3d地图可视化开发,技术采用three.js+glsl这样的是一种实现方式,其中使用glsl实现顶点着色器和片元着色器。
-
GLSL
GLSL是OpenGL的着色语言,它是为图形计算量身定制的,并包含一些针对向量和矩阵操作的有用特性。 -
顶点着色器
顶点着色器控制了几何体如何渲染,在GPU中运行并计算出最终顶点位置,顶点在openGL中是一种图元,它的维度小于3,一个顶点(Points)、2个顶点(Lines)、3个顶点(Triangles),着色器控制这些图元的位置坐标,最终通过gl_Position输出。 -
片元着色器
片元着色器处理物体材质、灯光等信息,决定了每个片元的颜色,同时也是在GPU中运行。最终通过gl_FragColor输出。 -
坐标系的转换
一个小姐姐画的图,坐标系的转化、矩阵转换,模糊的理解就是矩阵相乘,目前还在继续探索学习中。
-
球体demo实现
1、在CPU中计算好了物体的模型数据,其中包括Vertex, Index, UV, Normal。Vertex顶点模型坐标,Normal法线用于计算光照; Index顶点在生成图元阶段顶点的索性&