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

做单页网站盈利案例2345网止导航

做单页网站盈利案例,2345网止导航,珠海医疗网站建设公司,小程序开发平台哪家比较被大家认可—— 从“画出第一个三角形”理解现代图形渲染流程 🔰 写在前面 OpenGL 是一个状态机型的图形 API。第二章《你好,三角形》是整个图形开发的起点,它帮助我们掌握从「准备绘制数据」到「渲染出第一个像素」的完整流程。 这一章最核心的任务是…

—— 从“画出第一个三角形”理解现代图形渲染流程

🔰 写在前面

OpenGL 是一个状态机型的图形 API。第二章《你好,三角形》是整个图形开发的起点,它帮助我们掌握从「准备绘制数据」到「渲染出第一个像素」的完整流程。

这一章最核心的任务是:绘制一个基本三角形。但在这个过程中,你会接触到一系列“图形学世界”的关键角色,包括顶点着色器、片段着色器、缓冲对象、绘图指令等。


🎨 一、画三角形的本质:像素从哪来?

我们想要让屏幕上出现一个图形,比如三角形,关键问题是:

屏幕像素是怎么被决定颜色的?

答案是:通过 OpenGL 渲染管线(Render Pipeline)中两种关键“程序”:

  • 顶点着色器(Vertex Shader):处理“每个点”的位置。
  • 片段着色器(Fragment Shader):处理“每个像素”的颜色。

这个过程像是一场接力赛:

  1. 顶点 ➜ 顶点着色器 ➜ 几何组装 ➜ 光栅化成像素 ➜ 片段着色器 ➜ 最终屏幕像素。

🛠️ 二、你必须掌握的 6 个核心步骤

🔹 1. 初始化 EGL/OpenGL 上下文(略)

  • 这一部分通常由 Android GLSurfaceView 或其他框架封装了。
  • 真正从 OpenGL ES API 调用 开始的,是下面这些步骤。

🔹 2. 编写 & 编译着色器(Shader)

// 顶点着色器
#version 300 es
layout(location = 0) in vec4 vPosition;
void main() {gl_Position = vPosition;
}
// 片段着色器
#version 300 es
precision mediump float;
out vec4 fragColor;
void main() {fragColor = vec4(1.0, 0.0, 0.0, 1.0); // 红色
}

对比记忆:

着色器类型功能输入输出
顶点着色器定位图形结构顶点属性(位置)gl_Position
片段着色器决定颜色插值变量等输出像素颜色

编译步骤:

val vertexShader = glCreateShader(GL_VERTEX_SHADER)
glShaderSource(vertexShader, vertexCode)
glCompileShader(vertexShader)

🔹 3. 链接程序对象(Program)

将编译好的“顶点+片段”组合成一个完整程序:

val program = glCreateProgram()
glAttachShader(program, vertexShader)
glAttachShader(program, fragmentShader)
glLinkProgram(program)

👉 相当于“搭建了一个可以用来画图的工具箱”。


🔹 4. 准备顶点数据:VBO(Vertex Buffer Object)

val vertices = floatArrayOf(0.0f,  0.5f,   // 顶部-0.5f, -0.5f,   // 左下0.5f, -0.5f    // 右下
)glGenBuffers(1, vbo, 0)
glBindBuffer(GL_ARRAY_BUFFER, vbo[0])
glBufferData(GL_ARRAY_BUFFER, vertices.size * 4, buffer, GL_STATIC_DRAW)

🔹 5. 配置 VAO(Vertex Array Object)

VAO 保存着 VBO 的属性绑定信息。你不一定必须用 VAO(在OpenGL ES 2.0里没有),但在 ES 3.0 中是标准流程:

glGenVertexArrays(1, vao, 0)
glBindVertexArray(vao[0])
glEnableVertexAttribArray(0)
glVertexAttribPointer(0, 2, GL_FLOAT, false, 0, 0)

🔹 6. 执行绘制(Draw)

glUseProgram(program)
glBindVertexArray(vao[0])
glDrawArrays(GL_TRIANGLES, 0, 3)

注意绘制模式对比:

模式含义
GL_POINTS绘制点
GL_LINES绘制线段
GL_TRIANGLES每3个顶点构成一个三角形

🧠 总结记忆口诀

👉 用下面这句话记住整个流程:

“写好程序 → 加载数据 → 安排绑定 → 开始绘图”

也可以简记为 4 个核心词:Shader → Buffer → Bind → Draw


📌 你还需注意的几个易错点

易错点解释
着色器没编译成功要检查 glGetShaderiv(shader, GL_COMPILE_STATUS)
gl_Position 必须写在顶点着色器中否则无法显示
视口没设置默认可能不覆盖整个屏幕,记得加 glViewport
float 数组大小要乘4OpenGL 默认用的是 byte buffer

🏁 最后一图总结

[ 顶点数组 ] -> [ VBO ] -> [ VAO ] -> [ VertexShader ] |v光栅化生成像素|v[ FragmentShader ] |v显示屏幕
http://www.dtcms.com/wzjs/23606.html

相关文章:

  • 网站搜索功能怎样做网站排名怎么优化
  • 沈阳网站推广公司互联网怎么打广告推广
  • 做微信的网站有哪些功能百度热搜的含义
  • 手机网站加百度地图郑州官网网站优化公司
  • 全国精品课程建设网站优化大师怎么强力卸载
  • 有没有专门做日本代购的网站温州网站优化推广方案
  • wordpress建立视频网站2022拉新推广赚钱的app
  • 郑州公司网站如何制作竞价 推广
  • 昌邑建设局网站搜狗站长平台验证不了
  • 安庆网站制作精准推广
  • 有没有做招聘网站的做电商需要学哪些基础
  • 设计师用什么做网站肇庆seo排名外包
  • 河南省招生网站服务平台aso安卓优化公司
  • 为什么做的网站有的有弹窗有的没有廊坊百度快照优化哪家服务好
  • 怎样做自己的摄影网站运营网站是什么意思
  • 网站建设课件网络推广员工作内容
  • 天津做网站得公司厦门seo关键词
  • 做网站靠什么盈利外贸seo公司
  • java python 做网站百度推广员工工资怎么样
  • 做网站贵么一站式自媒体服务平台
  • 香港免备案虚拟主机搭建网站百度权重等级
  • 高端大气装饰公司网站源码 百度网盘网址收录
  • 建设银行个人网站官网百度新闻官网
  • 移动端手机网站制作全达seo
  • 微信 绑定网站百度seo关键词优化方案
  • wordpress 七牛上传插件aso优化教程
  • 设计师接私单网站广告代运营公司
  • 两学一做网站 新闻网站推广技巧
  • 住房和城乡建设部官方网站发布外贸网站seo优化
  • 龙岩网站建设费用兰州seo网站建设