小白学-WEBGL

第一天:

1.canvas和webgl的区别

  Canvas 和 WebGL 都是用于在网页上绘制图形的技术,它们通过浏览器提供的 API 使开发者能够创建丰富的视觉内容,但它们的工作原理和用途有所不同。

Canvas

  Canvas API 提供了一个通过 JavaScript 和 HTML <canvas> 元素绘制 2D 图形的方法。它是一个由网页浏览器渲染的矩形区域,你可以通过 JavaScript 动态地绘制其中的图像(如线条、形状、图像等)。Canvas 适用于较简单的图形和动画,以及图像处理和游戏的 2D 渲染。

  • 2D 绘图:Canvas API 主要关注于 2D 图形的绘制。
  • 即时渲染:绘制操作立即执行,不涉及场景或对象的概念。
  • 简单易用:API 相对简单,容易上手,适合快速开发简单的图形应用。

WebGL

  WebGL(Web Graphics Library)是一个 JavaScript API,允许在不需要任何插件的情况下,在 Web 浏览器中使用 GPU 加速的方式进行 3D 绘图。WebGL 是 OpenGL ES 的一个绑定(即一个低级图形 API 的 Web 版本),它允许开发者创建复杂的 3D 图形和效果。

  • 3D 绘图:WebGL 提供了创建和操纵在浏览器中渲染的复杂 3D 图形的能力。
  • GPU 加速:利用用户的图形处理器(GPU),可以实现高性能的图形渲染。
  • 复杂度高:由于提供了对底层图形硬件的直接访问,因此比 Canvas API 更复杂,学习曲线更陡峭。

关键区别

  • 维度和性能:Canvas 更适合 2D 图形和简单动画,而 WebGL 专注于更复杂的 3D 渲染和高性能图形。
  • API 复杂性:Canvas 的 API 相对简单易学,而 WebGL 提供了更接近硬件的控制,因此更为复杂。
  • 使用场景:对于需要绘制简单图形或处理图像的应用,Canvas 可能是更好的选择。对于需要复杂三维效果、高性能渲染的应用,WebGL 将是更合适的技术。

2.什么是着色器?

着色器(Shader)是一种用于在图形处理器(GPU)上执行的小程序,专门用于图形渲染的计算。它们是现代图形API(如OpenGL、DirectX)和图形渲染管线的核心组件。着色器使得开发者能够对渲染过程中的顶点、像素(片段)、纹理等进行高度控制和自定义,从而产生各种视觉效果。主要有以下几种类型:

  1. 顶点着色器(Vertex Shaders):处理顶点数据,如位置、颜色、纹理坐标等。它运行在渲染流程的早期,负责将3D坐标转换为另一种3D坐标,同时进行一些顶点级别的处理。

  2. 片段着色器(Fragment Shaders)/像素着色器(Pixel Shaders):处理渲染到屏幕上每个像素的颜色和其他属性。它决定了最终像素的颜色值,包括贴图、阴影、光照效果等。

  3. 几何着色器(Geometry Shaders):介于顶点着色器和片段着色器之间,可以生成从一个顶点到另一个顶点的新图形。

  4. 曲面细分着色器(Tessellation Shaders):可以根据某些规则增加几何体的细节或顶点数量,通常用于实现物体表面的平滑渲染。

  5. 计算着色器(Compute Shaders):并不直接参与图形渲染,而是用于处理非图形的通用计算任务,如物理模拟、图像处理等。

3.绘制一个点的流程

一个个像素

第二天

1.canvas坐标系

canvas坐标系webgl三维坐标系

2.绘制一个水平移动的点

3.声明attribute 变量:只能在顶点着色器使用

3.1.声明变量attribute

3.2attribute获取变量

3.3通过鼠标控制绘制

第三天

1.改变点的颜色

1.1使用uniform 变量

通过添加uniform设置变量

给uniform变量赋值

gl.uniform4f(uColor,1.0,0.0,0.0,1.0)

使用uniform的需要设置精度

precision mediump float;

既可以在顶点着色器使用也可以在片源着色器使用,但是顶点着色器不能使用顶点坐标

uniform 变量的使用流程

2使用缓冲区对象-绘制多个点

2.1什么是缓存区对象?

缓冲区对象是WebGL系统中的一块内存区域,可以一次性地向缓冲区对象中填充大量的顶点数据,然后将这些数据保存在其中,供顶点着色器使用

2.2Float32Array是类型化数组

在 webgl 中,需要处理大量的相同类型数据,所以引入类型化数组,这样程序就可以预知到数组中的数据类型,提高性能。

2.3绘制流程

 

2.4多缓存区和数据偏移

 流程和aPosition一样

3. 多种图形绘制

4.图形缩放-着色器

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-Unity-WebGL 是一个具有极高可扩展性和灵活性的 Unity3D web 端开发框架,它将 Vue.js 与 Unity Web Player 和 WebGL 等技术相结合,为开发者提供了最佳的解决方案。 Vue-Unity-WebGL 框架具有很高的兼容性和易用性,开发者可以更加灵活地应用该框架来定制自己的项目。由于该框架具备了许多优秀的特性,如自适应布局、多平台支持等,使得开发者可以轻松地实现用户体验和开发效率的提升。此外,Vue-Unity-WebGL 框架不仅提供了可视化开发工具,还提供了完整的运行环境,为开发者提供了优秀的开发体验。 Vue-Unity-WebGL 框架的另一个重要特点是其大量的插件与扩展功能,这些插件和扩展可以为项目的开发和管理提供坚强的技术支持。比如,通过 vue-router 可以控制路由,Vue-Unity-WebGL 可以协作处理组件数据和 Unity3D 渲染等复杂的操作,而 Vuex 则可以使开发者方便地处理应用数据流和组件状态的管理。这些插件和扩展功能极大地提高了 Vue-Unity-WebGL 框架的可扩展性和灵活性,使得开发者可以更加容易地进行定制。 综上所述,Vue-Unity-WebGL 框架是一个快速、可靠且强大的解决方案,这使得开发者能够轻松地编写出高质量的 Unity3D web 应用程序。该框架具有大量的功能,实现可扩展性、灵活性、易用性和可维护性,比其他框架更具有竞争力。在未来的发展中,Vue-Unity-WebGL 框架将会被更多的开发者喜爱和应用,并在技术社区中拥有更广泛的影响力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值