相信你现在已经写了不少OpenGL的Demo了。一次次的compile和attach着色器是不是很烦。 要想让我们生活愉悦,就不得不封装一个类。( 方便学习,方便移植,方便你我他 ) 添加必要的include 从文件读取 我们使用C++文件流读取着色器内容,储存到几个string对象中 封装好了如何 ...
分类:
其他好文 时间:
2019-11-17 23:46:25
阅读次数:
91
内置文件cgnic nameDescribeUnityCG.cginc,包含了最常用变量、帮助函数、宏、结构体Lighting.cginc各种内置的光照模型,表面着色器会自动包含该文件HLSLSupport.cginc声明了许多用于跨平台编译的宏和定义UnityGlobalIllumination.... ...
分类:
编程语言 时间:
2019-10-13 22:14:51
阅读次数:
145
前篇学习了单个的光源,现在在一个场景中放置多个不同的光源,包括一个定向光源、4个点光源、一个聚光灯。 GLSL代码如下(片段着色器): 渲染代码如下: 效果图: 1、定向光+点光源 2、定向光+点光源+聚光灯(软影) ...
分类:
其他好文 时间:
2019-10-05 20:52:19
阅读次数:
109
1、平行光 给出光源的方向向量即可,没有位置(这里不作代码展示了,很简单)。 2、点光源 点光源包含衰减过程。需要给出光源的位置,衰减的三个系数。 片段着色器代码如下: 渲染代码如下: 效果图: 3、聚光灯 聚光灯除了衰减以外,加入了照射范围限制,光源有位置、照射方向、cut角。 片段着色器代码如下 ...
分类:
其他好文 时间:
2019-10-04 16:51:10
阅读次数:
104
光照贴图一般有漫反射和镜面高光贴图。光照贴图用在片段着色器中,对每个片元计算color时,对于phong光照模型,diffuse和specular材质颜色可以从对应的纹理中采样,这就是光照贴图。 片段着色器代码如下: 渲染代码如下(包含设置光照贴图): 效果图: ...
分类:
其他好文 时间:
2019-10-03 23:53:46
阅读次数:
118
利用Direct3D绘制几何体 学习目标 1. 探索用于定义、存储和绘制几何体数据的Direct接口和方法 2. 学习编写简单的顶点着色器和像素着色器 3. 了解如何用渲染流水线状态对象来配置渲染流水线 4. 理解怎样创建常量缓冲区数据。并将其绑定到渲染流水线上 5. 掌握根签名的用法 6.1 顶点 ...
分类:
其他好文 时间:
2019-09-30 00:00:45
阅读次数:
121
通过绘制彩色三角形的示例,介绍了varying变量,顶点着色器与片元着色器之间数据传输的过程:顶点装配与光栅化。 ...
分类:
Web程序 时间:
2019-09-14 19:17:33
阅读次数:
123
图形处理所有渲染工作都离不开OpenGL, 着色器(Shader)
分类:
其他好文 时间:
2019-09-11 09:50:08
阅读次数:
89
立方体贴图,也称CubeMap。其实就是一张包含六个面的纹理贴图,一般情况下是加载六张贴图构成cubemap。 加载代码如下: 使用cubemap实现天空盒 片段着色器中采样纹理 效果展示: 1、反射 - 盒子 2、反射 - nanosuit 3、折射 - nanosuit ...
分类:
其他好文 时间:
2019-08-29 20:24:45
阅读次数:
103
一: 模板测试 1. 当片段着色器处理完一个片段之后,模板测试(Stencil Test)会开始执行,和深度测试一样,它也可能会丢弃片段。接下来,被保留的片段会进入深度测试,它可能会丢弃更多的片段。模板测试是根据又一个缓冲来进行的,它叫做模板缓冲(Stencil Buffer)。 2. 一个模板缓冲 ...
分类:
其他好文 时间:
2019-08-13 10:33:56
阅读次数:
96