绘制方法

 

上传模型

1    <!DOCTYPE html>
2    <html lang="en">
3    <head>
4        <meta charset="UTF-8">
5        <title>使用WebGL绘制一个点</title>
6    </head>
7    <body>
8    <!--canvas标签创建一个宽高均为500像素,背景为蓝色的矩形画布-->
9    <canvas id="webgl" width="500" height="500" style="background-color: blue"></canvas>
10   
11   </body>
12   <script>
13       //通过getElementById()方法获取canvas画布
14       var canvas=document.getElementById('webgl');
15       //通过方法getContext()获取WebGL上下文
16       var gl=canvas.getContext('webgl');
17   
18       //顶点着色器源码
19       var vertexShaderSource = '' +
20           'void main(){' +
21           //给内置变量gl_PointSize赋值像素大小
22           '   gl_PointSize=20.0;' +
23           //顶点位置,位于坐标原点
24           '   gl_Position =vec4(0.0,0.0,0.0,1.0);' +
25           '}';
26   
27       //片元着色器源码
28       var fragShaderSource = '' +
29           'void main(){' +
30           //定义片元颜色
31           '   gl_FragColor = vec4(1.0,0.0,0.0,1.0);' +
32           '}';
33   
34       //初始化着色器
35       var program = initShader(gl,vertexShaderSource,fragShaderSource);
36       //开始绘制,显示器显示结果
37       gl.drawArrays(gl.POINTS,0,1);
38   
39       //声明初始化着色器函数
40       function initShader(gl,vertexShaderSource,fragmentShaderSource){
41           //创建顶点着色器对象
42           var vertexShader = gl.createShader(gl.VERTEX_SHADER);
43           //创建片元着色器对象
44           var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
45           //引入顶点、片元着色器源代码
46           gl.shaderSource(vertexShader,vertexShaderSource);
47           gl.shaderSource(fragmentShader,fragmentShaderSource);
48           //编译顶点、片元着色器
49           gl.compileShader(vertexShader);
50           gl.compileShader(fragmentShader);
51   
52           //创建程序对象program
53           var program = gl.createProgram();
54           //附着顶点着色器和片元着色器到program
55           gl.attachShader(program,vertexShader);
56           gl.attachShader(program,fragmentShader);
57           //链接program
58           gl.linkProgram(program);
59           //使用program
60           gl.useProgram(program);
61           //返回程序program对象
62           return program;
63       }
64   </script>
65   </html>