`
cloudtech
  • 浏览: 4595883 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
文章分类
社区版块
存档分类
最新评论

GLSL基础教程(一)

 
阅读更多


高级着色语言(HLSL――High Level Shading Language)是用来在顶点和像素着色器(shader)中编程的语言。其实,说白了他们就是我们写的短小的自定义程序,他们是在图形卡的GPU(Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线的一部分。比如:视图转换、投影转换等。

由于我们可以将HLSL着色器所写的代码直接作为长字符串资源放进应用程序中。所以,我们可以在记事本中描写我们的着色器代码。

GLSL(GL Shading Language)的着色器代码分成2个部分:Vertex Shader(顶点着色器)和Fragment(片断着色器)。下面主要关于顶点着色器代码。

顶点着色器主要的工作是:

1. 利用视图和投影矩阵对点的位置进行变化

2. 如果需要利用法线的时候,也同样需要利用视图矩阵对其进行转换

3. 纹理坐标的产生和转换

4. 顶点的光照或者象素光照的计算

5. 颜色计算

并不是所有的工作都需要做,只需根据自己的需要进行不同的编写

负责运行顶点着色的是顶点处理器。它可以得到当前OpenGL中的状态,GLSL内置变量进行传递。比如gl_ProjectionMatrix(投影变换矩)、gl_ModelViewMatrix(视图变换矩阵)、g_position、gl_Backcolor、gl_Frontcolor、gl_Normal等;而这些又是根据OpenGL应用程序传递诸如顶点位置、颜色、法线等信息。举一个简单的顶点着色器代码:

 void main()

 { 

  gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * 

gl_Vertex;

 }


--未完待续--

分享到:
评论

相关推荐

    GLSL 中文手册 PDF

    GLSL 中文手册 PDF

    OpenGL4.0+vs2019渲染一个模型

    本教程将介绍如何使用GLSL在OpenGL 4.0中渲染3D模型。本教程中的代码基于漫反射教程中的代码https://blog.csdn.net/weixin_44210987/article/details/109300986。 在之前的教程中,我们已经渲染过3D模型,但是它们...

    Nehe的OpenGL教程电子书

    在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。 读完了这一课,你会学到如何在空间放置...

    GLStudio:OpenGL基础入门

    博客教程基础知识章节完成情况√√√√√√√√√√√√ EGL ○坐标系统&图形变换○颜色混合○ √ GLSL语言基础○音视频相机开发专题完成情况√√√GPU图像专题完成情况基础流程框架梳理○视频的展示与处理○画幅...

    OPenGL编程书籍

    在第一个教程的基础上,我们添加了一个三角形和一个四边形。也许你认为这很简单,但你已经迈出了一大步,要知道任何在OpenGL中绘制的模型都会被分解为这两种简单的图形。 读完了这一课,你会学到如何在空间放置模型...

    WebGL编程指南-源码

     《WebGL编程指南》的主要篇幅讲解了WebGL原生API和三维图形学的基础知识,包括渲染管线、着色器、矩阵变换、着色器编程语言(GLSLES)等等,也讲解了使用WebGL渲染三维场景的一般技巧,如光照、阴影、雾化等等。...

    零基础入门计算机图形学必不可少的在线网络公开课,手把手教您现代 OpenGL 的点点滴滴,构建爆款游戏引擎

    在这门课程中,你将从基础知识开始,逐步深入探索图形渲染管线的各个阶段,学习如何使用OpenGL和GLSL进行高效的图形编程,实现各种真实感效果,如光照、纹理、阴影等。你还将动手搭建一个完整的3D游戏引擎框架,...

    awesome-threejs:搜集并学习threejs的相关知识总结、Demo、站点、书籍等

    搜集并学习threejs的相关知识总结、Demo、站点、书籍等,欢迎有兴趣的小伙伴一起交流学习。... OpenGL GLSL 基础语法和函数 GLSL 中文手册 踩坑经验 分享记录遇到的坑及解决方案 以下经验来自快乐小球球 图片尺

    webgl-clojurescript-tutorial:指导您使用thi.nggeom和Figwheel设置ClojureScript程序以交互方式编程WebGL的基础知识

    本文档将指导您了解使用thi.ng/geom和Figwheel设置ClojureScript程序以WebGL的基础知识。 目录 全部放在一起 动画循环 快速了解函数式编程 构造动画功能 原子 编写功能 一个解法 变形模型 代码检查点 定义并通过...

    游戏开发入门教程知识点总结以及技巧点总结.docx

    编程基础 2. 1.熟练掌握至少一种面向对象编程语言,如C++、C#、Java或JavaScript。 2.理解数据结构与算法,如数组、链表、栈、队列、哈希表、排序和查找算法等。 3. 游戏引擎 4. 1.学习Unity、Unreal Engine等流行...

    webgl基础知识:从基础知识开始的WebGL课程

    OpenGL和OpenGL教程的思想在WebGL,Op​​enGL ES 2.0和着色器领域已过时。 我认为WebGL实际上是一个非常简单的API。 使它显得复杂的是它的使用方式。 复杂性是由程序员添加的。 WebGL本身很简单。 这些课程试图...

    GravityInfiniteRunner:第一人称无限跑手

    无限亚军基础游戏更新此仓库是用Unity 4创建的,并使用该版本的unfity来创建无限的亚军游戏。... 我还将在那里提供有关如何为重力无限跑步游戏创建所有模块的教程: : 或 祝您编码愉快! -TheNappingKat

Global site tag (gtag.js) - Google Analytics