当前位置: 首页 > news >正文

网站开发培训机构哪个好爱网站免费一站二站

网站开发培训机构哪个好,爱网站免费一站二站,建设一个本地网站,小程序用什么软件开发前言 这篇文章不说WebGL相关概念了,初学者先到网上看看WebGL相关概念。这里着重写一下在vue3前端框架下,如何通过webGL绘制圆点。 着色器代码(画点) 画点相关的着色器代码有顶点着色器和片元着色器,代码如下: 顶点着色器&…

前言

这篇文章不说WebGL相关概念了,初学者先到网上看看WebGL相关概念。这里着重写一下在vue3前端框架下,如何通过webGL绘制圆点。

着色器代码(画点)

画点相关的着色器代码有顶点着色器和片元着色器,代码如下:

顶点着色器:

const vertexShaderSrc = `void main() {gl_Position = vec4(0, 0, 0, 1.0);gl_PointSize = 20.0;}
`;

片元着色器:

const fragmentShaderSrc = `void main() {gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);}
`;

初始化着色器

在网上找的一个通用的初始化着色器代码,如下所示:

function loadShader(gl, type, source) {//根据着色类型,建立着色器对象const shader = gl.createShader(type);//将着色器源文件传入着色器对象中gl.shaderSource(shader, source);//编译着色器对象gl.compileShader(shader);//返回着色器对象return shader;
}
export function initShaders(gl, vsSource, fsSource) {//创建程序对象const program = gl.createProgram();//建立着色对象const vertexShader = loadShader(gl, gl.VERTEX_SHADER, vsSource);const fragmentShader = loadShader(gl, gl.FRAGMENT_SHADER, fsSource);//把顶点着色对象装进程序对象中gl.attachShader(program, vertexShader);//把片元着色对象装进程序对象中gl.attachShader(program, fragmentShader);//连接webgl上下文对象和程序对象gl.linkProgram(program);//启动程序对象gl.useProgram(program);//将程序对象挂到上下文对象上gl.program = program;
}

代码中注释蛮详细的。

vue3框架使用webGL画点

这里直接贴上全部代码了,如下所示:

<template><div class="point-wrapper"><div style="margin-bottom: 20px">绘制点</div><canvas id="point" width="100" height="100"></canvas></div>
</template><script>
export default {name: "point",
};
</script><script setup>
import { onMounted } from "vue";
import { initShaders } from "@/utils/myGL.js";const vertexShaderSrc = `
void main() {gl_Position = vec4(0, 0, 0, 1.0);gl_PointSize = 20.0;
}
`;const fragmentShaderSrc = `
void main() {gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
}
`;const fragmentShaderSrcCircle = `
precision mediump float;
void main() {float d = distance(gl_PointCoord, vec2(0.5, 0.5));if(d < 0.5) {gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);} else { discard; }
}
`;onMounted(() => {const canvas = document.getElementById("point");// webgl画笔const gl = canvas.getContext("webgl");// 初始化着色器initShaders(gl, vertexShaderSrc, fragmentShaderSrc);// 指定将要用来清理绘图区的颜色gl.clearColor(0.0, 0.0, 0.0, 1.0);// 清理绘图区gl.clear(gl.COLOR_BUFFER_BIT);// 绘制顶点gl.drawArrays(gl.POINTS, 0, 1);setTimeout(() => {initShaders(gl, vertexShaderSrc, fragmentShaderSrcCircle);// 指定将要用来清理绘图区的颜色gl.clearColor(0.0, 0.0, 0.0, 1.0);// 清理绘图区gl.clear(gl.COLOR_BUFFER_BIT);// 绘制顶点gl.drawArrays(gl.POINTS, 0, 1);}, 5000);
});
</script><style lang="scss" scoped>
.point-wrapper {width: 200px;height: 200px;background-color: gray;
}
</style>

myGL.js中放的是初始化着色器initShaders 接口。

大家可以拷贝代码运行一下,刚开始出现一个正方形点,5秒后变成圆点

http://www.yayakq.cn/news/353512/

相关文章:

  • 做网站用什么插件怎样建设网站施工
  • 做爰在线网站北京网站建设套餐
  • 可以免费建手机网站建站行业解决方案
  • 可以做早安图片的网站响应式网站建设多少钱
  • 东莞市微信网站建设品牌外贸网站改版公司哪家好
  • 网站做下载功能制作一个网页需要花钱吗
  • 江苏省建设网站一号通亚马逊卖家可以做促销的网站
  • 南昌网站seo中小企业建站是什么
  • 如何建立网站和网页葛洲坝机电建设有限公司网站
  • 帮网站做代理免费企业管理系统软件
  • 可以进不良网站的浏览器站群系列服务器做视频网站
  • 安卓手机网站开发工具系统官网网站模板下载安装
  • 网站用户需求报告昆明网站建设培训
  • 架设网站 软件陕西省建设网官网住房和城乡厅官网
  • 公众号的微网站开发扬州天达建设集团有限公司网站
  • 怎么做招聘网站wordpress媒体库现实不全
  • 大连免费建站模板张店网站建设
  • 东莞网站建设推广多少钱公司注册商标的流程及资料
  • 网站域名用公司注册信息查询wordpress播放列表
  • 重庆网站建设重庆网站制作ftp 网站管理
  • 郑州做网站网络公司移动网站建设推荐
  • 网站建设项目方案ppt外贸seo软件
  • 在什么网站下载wordpress做钓鱼网站的公司
  • 技术支持 东莞网站建设传送带查企企官方网站
  • 绿色在线网站模板莆田网站建设电话
  • 微信公众号网站开发模板旅游网站内容
  • 如何看网站是否有做网站地图响水做网站的公司
  • wps哪个工具做网站wordpress二级菜单代码
  • 上海做网站建设中国银行门户网站
  • 模板网站开发推广织梦发布网站