自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

加载中...

----------请检查你的网络设置

  • 博客(1201)
  • 资源 (2)
  • 论坛 (2)
  • 收藏
  • 关注

原创 UnityShader17:光照属性与阴影

前置:UnityShader16:点光源和聚光灯一、一些重要的光照、阴影属性一个一个来(绿色的部分暂时可以不用了解):Type:光照类型,除了常用的3个,还有一个面光源 Color:光照颜色 Mode:光照模式:实时光照/混合/烘培光照 Intensity:光照强度 Indirect Multiplier:在计算该灯光所产生的间接光照时的强度倍乘 Shadow Type:阴影类型:无阴影/硬阴影/软阴影 Cookie:用于光照投影的纹理 Cookie Size:Cooki...

2021-01-11 00:35:23 72

原创 UnityShader16:点光源和聚光灯

一、点光源平行光与点光源:https://blog.csdn.net/Jaihk662/article/details/106722949

2021-01-06 17:22:43 47

原创 UnityShader15:前向渲染

这一章要注意的点比较碎也比较杂,参考自很多地方,包括也问了一些同事或朋友,从他们那得到的拼图碎片一、延迟着色和前向渲染很可惜的是没有什么前置,OpenGL 本是要写一篇延迟着色的笔记的,但是怎么看这都不属于OpenGL 基础的范畴先考虑最简单的情况:只有一个光源,这个时候当然就按照正常渲染流程就好了→ 稍微复杂点:有多个光源,但是数量比较少(夜晚有路灯的街道),很容易想到在着色中 for 循环所有光源再叠加颜色的方法,确实之前 OpenGL 的 demo 就是这样做的,又或者是多...

2021-01-04 19:12:45 65

原创 UnityShader14.1:透明效果实现(下)

接上文:UnityShader14:透明效果实现(上)四、开启深度写入的透明效果对比下面两种渲染效果:前面提到过,透明物体的渲染顺序非常重要,对于一个复杂的透明物体,若不进行网格分割,那么几乎不可能得到正确的渲染结果,就如图一但是也有一个折中的方案,那就是使用两个 Pass 来渲染模型,第一个 Pass 开启深度写入,把所有被遮挡的片元剔除掉,第二个 Pass 正常渲染,这样就可以得到图二的效果,代码在下:Shader "Jaihk662/AlphaTest1"{ ...

2020-12-29 18:23:41 50

原创 UnityShader14:透明效果实现(上)

前置:OpenGL基础31:混合一、透明度测试(Alpha Test)透明度测试的目的很直接,如果像素的 Alpha 值小于一个定值,那么这个像素就直接丢弃:Shader "Jaihk662/AlphaTest1"{ Properties { _DiffuseColor ("DiffuseColor", Color) = (1.0, 1.0, 1.0, 1.0) _SpecularColor ("SpecularColor", Color...

2020-12-28 21:08:32 57

原创 UnityShader13:渐变与遮罩

前置:UnityShader9:光照基础实例一、渐变纹理渐变纹理目的非常简单:改变漫反射颜色一般来讲,渐变纹理是一维的,你可以理解为一条带有颜色的线,线上的每一点的颜色代表者对应光照强度下物体应该显示的颜色或色调:如果使用半兰伯特光照,其光照强度范围正好被映射到了 [0, 1],而纹理的uv坐标范围也是[0, 1],此时采样方式正是光照强度 = uv坐标代码很简单,和前面实现镜面光照的代码几乎一模一样,就是在计算漫反射光照时多了一个纹理采样:Shader "Jaihk66...

2020-12-25 21:11:59 68

原创 UnityShader12:Unity中应用法线贴图

一、关于法线贴图和切线空间如果之前在OpenGL 或者 directX 中成功应用过法线贴图,那么在 U3D 中实现就容易多了切线空间:https://blog.csdn.net/Jaihk662/article/details/107917594 法线贴图:https://blog.csdn.net/Jaihk662/article/details/108102673里面已经做过好理解且详细的介绍了,可以只关心理论部分二、Unity中应用法线贴图因为法线存储于切线空间中...

2020-12-23 12:40:25 45

原创 UnityShader11:纹理属性

一、需要提前了解的纹理可以理解为就是一张图片,对于一张平面图,如何“铺”在一个不规则的物体上,是第一个要考虑的问题纹理基础属性及纹理坐标:https://blog.csdn.net/Jaihk662/article/details/106062221 纹理与光照:https://blog.csdn.net/Jaihk662/article/details/106674211二、给物体铺上外皮再复杂的物体都是由一个个三角形面片拼接而成的,仅考虑其中一个三角形面片,若要将纹理“铺”在...

2020-12-21 21:19:44 55

原创 UnityShader10:CG标准函数库

一、基础数学函数abs(x):绝对值 ceil(x):向上取整 floor(x):向下取整 round(x):四舍五入 frac(x):仅保留小数部分 sign(x):得到 x 的符号,正数则返回1,否则返回0 step(a, x):如果 x ≥ 1 返回1,否则返回0 fmod(x,y):计算x%y clamp(x, a, b):将 x 的值截取到 [a, b] 的范围内 saturate(x):将 x 的值截取到 [0, 1] 的范围内 lerp(a, b, k):计算...

2020-12-04 16:40:03 147

原创 UnityShader9.1:光照基础实例

前置:UnityShader9:光照基础回顾一、漫反射光照直接上代码:其中 Tags 需要设置光照模式为ForwardBase,它定义了该 Pass 在光照流水线中的角色,在不同的光照模式下 Unity 的内置光照变量属性和含义都有可能不同关于光照模式需要了解的的还有不少,不过可以暂时不用这么深究Shader "Jaihk662/NewSurfaceShader"{ Properties { _DiffuseColor ("DiffuseC...

2020-12-04 10:14:21 153

原创 UnityShader9:光照基础回顾

一、需要提前了解的基于经验的基础光照,相比于后面物理光照的学习,简单不少:光照基础:https://blog.csdn.net/Jaihk662/article/details/106624451 漫反射:https://blog.csdn.net/Jaihk662/article/details/106640285(里面也有法向量的讲解) 镜面光照:https://blog.csdn.net/Jaihk662/article/details/106660744 两种基于经验的光照模型:...

2020-11-27 21:06:05 127

原创 UnityShader8:编写Shader时需要注意的细节和可能需要的意外/BUG

此文章实时更新一、FrameDebug 帧调试器Window → Frame Debugger → 打开后如下:帧调试器可以在游戏运行时冻结当前帧,以查看当前图像是怎么一步步渲染出来的开启帧调试 目前已执行到的对应渲染事件,可以从 Game 视图看到其对应渲染效果 当前帧所有渲染事件渲染事件非常的全面,其中 Draw 开头的就是 DrawCall,可以确定其对应的 GameObject,对应的渲染纹理也会显示在 Game 视图中一、注意事项1):平台渲染差异:...

2020-11-27 17:58:43 161 1

原创 UnityShader7:内置包含文件UnityCG.cginc与GG/HLSL语义

一、包含文件 .cginc类似于头文件,cginc 可以理解为 GC include,用 #include 指令包括进来后,就可以使用其中的变量和帮助函数,在上一章:UnityShader6:最简单的顶点/片元着色器中,我们直接通过UnityObjectToClipPos(v) 这个方法来得到顶点在裁剪空间中的坐标,这个UnityObjectToClipPos() 方法就实现在对应的 .cginc 文件里Unity 自带一些非常基础的 .cginc 文件,例如UnityCG.cginc,...

2020-11-26 19:34:42 216

原创 UnityShader6:最简单的顶点/片元着色器

一、顶点/片元着色器基本结构直接上代码:这个着色器可以得到蓝色的纯色输出,如果顶点着色器得出了错误的裁剪空间坐标,那么会出现很明显表现错误Shader "Jaihk662/NewSurfaceShader"{ Properties { } SubShader { Tags { "RenderType" = "Opaque" } LOD 200 PASS { ...

2020-11-25 15:43:40 134

原创 UnityShader5:基本内置变量

一、前置基础无论是用哪种图形接口,又或是游戏引擎,入门的数学公式和逻辑就是那一套:基础线代公式汇总:https://blog.csdn.net/Jaihk662/article/details/103811465 欧拉角:https://blog.csdn.net/Jaihk662/article/details/106519595 基本空间:https://blog.csdn.net/Jaihk662/article/details/106237306 法向量/切线空间:https:/...

2020-11-23 20:42:29 104

原创 UnityShader4:UnityShader的形式

前置:UnityShader2:Shader与材质一、Standard Surface Shader 代码解析在前置中已经了解了什么是表面着色器,下面这是Standard Surface Shader,也是创建 Shader 时的默认代码之一Shader "Custom/NewSurfaceShader"{ Properties { _Color("Color", Color) = (1,1,1,1) _MainTex("Albedo ...

2020-11-20 15:56:16 164

原创 UnityShader3:ShaderLab

一、UnityShader 的语言:ShaderLabShaderLab:专门为 UnityShader 服务的语言,在 Unity 中所有的 UnityShader 都是使用 ShaderLab 来编写的对于之前OpenGL 的学习需要考虑很多事情,包括但不限于模型和资源的加载、着色器的选择与输入、渲染状态的设置等,现在对于 Unity3D 还再多一个跨平台。这样要考虑的事情实在是太多了,而有了 UnityShader 这一抽象层后,开发者只需要使用 ShaderLab 来编写 Unity...

2020-11-19 21:16:31 138

原创 UnityShader2:Shader与材质

前置:Unity3D基础3:贴图与材质球一、Shader 与材质贴图 +着色器(Shader)= 材质球同一张贴图使用不同的着色器,可以展现出不同的效果:在这个地方设置你的 Shader,默认的 Standard Shader 是一种基于物理渲染的着色器,自带一些光照效果下面是可视化面板,可以直接调整 Shader 里的各个参数,可调整的参数当然由对应的 Shader 决定二、创建一个 Shader先提前了解下 Unity Shader 的三种编写形式:...

2020-11-19 12:03:42 193

原创 UnityShader1:渲染流水线

前置专栏:Unity3D基础 前置专栏:OpenGL 前置:基础线代公式汇总一、渲染流水线三个阶段:应用阶段 → 几何阶段 → 光栅化阶段应用阶段(起点为CPU,目标为GPU):把数据加载到显存中:显卡对于显存的访问速度更快,而且大多数显卡对于 RAM 没有直接的访问权利,加载到显存后对于原先在 RAM 中的数据可以选择性的移除 设置渲染状态:确定使用的着色器,材质等 调用 Draw Call:Draw Call 是 CPU 发送给 GPU 的一个命令,告诉 GPU 可以开始绘制...

2020-11-17 21:25:33 138

原创 OpenGL基础56:OpenGL简单调试

图形编程想要调试并不是一件容易的事,有的时候渲染出全黑的结果基本上只能凭经验来查错,特别是对于着色器,断点日志都是无效的,因此想办法掌握一些调试方法还是有必要的,不然找错误的源头可能真的会非常困难一、glGetError()可以在程序的任意地方调用glGetError方法,它会返回之前所有的错误标记,常见的错误如下:标记 代码 描述 GL_NO_ERROR 0 自上次调用glGetError以来没有错误 GL_INVALID_ENUM 1280 ...

2020-09-27 12:01:44 160

原创 OpenGL基础55:文字渲染

一、FreeType库FreeType是一个能够提供多种字体相关的操作的软件开发库,往往使用它来做最简单的文字渲染:OpenGL环境配置(超全整合版)FreeType库可以从这篇文章中的链接中下载到,也可以直接去他们的官方网站上获取和其它环境配置方法一样,编译其builds文件夹的对应版本,并将include文件夹里面的所有文件全部放入老位置(C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\M...

2020-09-23 20:56:20 188

原创 OpenGL基础54:点光源阴影

前置:OpenGL基础53:阴影映射(下)一、万象阴影贴图之前成功实现了平行光阴影,生成阴影贴图时使用的矩阵是正交矩阵,若是想要实现点光源的阴影效果,那么理论上只需要修改投影矩阵为透视矩阵就好了,看上去并不是很难但是要得到点光源阴影贴图要考虑到的是:如何渲染出周围所有的场景,像摄像机它是有一定视角的,而点光源确是360°全面照射,因此对于点光源的阴影贴图一张肯定是不够的,它只能展示出一个方向下图是90°透视投影的视觉范围,朝向为x轴正方向,那么只需要再对剩下的5个方向各来一次投影理论...

2020-09-09 10:57:23 238

原创 OpenGL基础53:阴影映射(下)

接上文:OpenGL基础52:阴影映射(上)五、阴影失真按照上文的计算的结果,一个很明显的问题是:对于参与计算深度贴图的物体,其表面可以看到这样的栅格状的阴影,这种现象也叫做阴影失真(Shadow Acne)出现这种请情况的原因是:在计算深度贴图的时候,分辨率不够高,毕竟这张深度贴图是对于整个场景而言的,想要一一对应到每个模型的每个片段就是个不可能的事,这样对于实际的模型的多个片段,就都会从深度贴图中的同一个坐标去采样,如果这些相邻片段的实际深度值一致那其实不会有什么问题,但由于光照角...

2020-09-04 17:41:10 103

原创 OpenGL基础52:阴影映射(上)

参考于:https://learnopengl.com/#!Advanced-Lighting/Shadows/Shadow-Mapping一、游戏中的阴影阴影是光线被阻挡的结果,当一个光源的光线由于其他物体的阻挡不能够达到一个物体的表面的时候,那么这个物体就在阴影中了。理论上阴影无处不在,但是想要渲染出很好的阴影效果,并不是一件特别容易的事,目前实时渲染领域还没找到一种完美的阴影算法,尽管有不少近似阴影技术,但它们都有自己的弱点和不足minecraft游戏截图目前较多使用的一种技术...

2020-09-03 14:48:04 1469

原创 OpenGL基础51:泛光

一、泛光(Bloom)如果一个物体的颜色值接近1.0,怎么确定它是否是光源呢?毕竟一张白纸它的颜色也可以是1.0在此之前,分辨光源往往都是靠的经验,例如你知道这个物体它是个路灯,又或者说根据周围的光照来判断光的中心等等,其实只要使用的模型,都没什么大的问题,而很多游戏中为了体现出更真实的光源,都会给光源加上泛光,以体现出光源向四周发散的光芒,提升光照的效果:泛光效果只是一个渲染技巧,本质上就是一个模糊处理,它并不能反映出真实的物理世界,但尽管如此,一个完美的算法依旧可以大幅提升画面的效...

2020-08-31 12:39:19 1497

原创 OpenGL基础50:HDR

一、HDR与LDR由于显示器只能显示值为0.0到1.0间的颜色,因此当数据存储在帧缓冲(Framebuffer)中时,亮度和颜色的值也是默认被限制在0.0到1.0之间的,这个颜色范围即是LDR(Low Dynamic Range)低动态范围如果光源足够的多,越或者某个光源亮度非常的高,那么对当下的环境,就有可能遇到这样的情况:可以看到,当前的纹理已经变得难以分辨了,丢失了特别多的细节:在计算片段亮度的过程中,这些片段中超过1.0的亮度或者颜色值都会被约束在1.0,这样一大段的区域都会是...

2020-08-27 19:11:51 845

原创 OpenGL基础49:高度贴图(下)

接上文:OpenGL基础48:高度贴图(上)四、陡峭视差映射上文计算纹理偏移的方法是最简单的,但问题也比较大:当你斜视贴图的时候可以看到非常明显的错误这里有另一种方法,这种方法类似于找连续函数在特定定义域内与x轴第一次相交:在范围内不停的取x值,直到当前得到的与上一次得到的符号不同,这样就可以确定交点在上一个采样点和这次采样点之间就如上,先将总深度范围分布到同一个深度的多个层中,然后在每个层中沿着观察方向移动采样纹理坐标,直到找到第一个采样深度值 ≤测试深度值的点,以确定...

2020-08-24 15:40:17 170

原创 OpenGL基础48:高度贴图(上)

前置:OpenGL基础47:法线贴图一、凹凸贴图不少模型都会附带以“bump”为名结尾的贴图,这种帖图统称为凹凸贴图,目的是为了体现出物体的凹凸不平,最经典的例子就是法线贴图,这个在上一章有详细提到过除此之外还有高度贴图、浮雕贴图等,暂时先了解下高度帖图及其最简单的算法高度贴图又称视差贴图,用于直接给予纹理显示上的错觉,视差贴图往往都是黑白图,因为理论上只需要知道每个纹理的深度值,因此RGB三个值都是相等的,就如下:如果对应的像素是黑色的,意味着此纹理的高度为0,也就是默认值,...

2020-08-22 19:03:13 187

原创 OpenGL基础47:法线贴图

前置:OpenGL基础46:切线空间这章在《OpenGL基础46:切线空间》之后,如果不了解切线空间的话,是没法很好理解法线贴图的五、逐像素光照前文提到过:为了得到正确的光照,需要知道物体每个顶点的法向量,但为了保证效率,一般物体的顶点不会太多,就像一面很长很宽的墙壁,它的表面往往凹凸不平,但事实上它可能单纯的只是一个立方体,每一面给上了一个贴图。这样如果还想要体现出物体“凹凸不平”的效果,就需要用到法线贴图或者高度贴图之前所有的光照都是逐顶点光照:也就是说对于当前片段,它的法向量取决...

2020-08-19 19:41:38 198

原创 OpenGL基础46:切线空间

前置:OpenGL基础11:空间一、什么是切线空间(Tangent Space)在《OpenGL基础11:空间》中提到了观察空间、裁剪空间、世界空间等。切线空间和它们一样,都属于坐标空间上面就是一个切线空间的例子,对于切线空间:N:该顶点本身的法线方向,z轴 T:该顶点的一条切线,但由于切线数量有无数条,其一般由模型给定,对应着UV图中的U,也就是使用和纹理坐标方向相同的那条 B:由前两者叉乘得到,对应着UV图中的VUV图:用于告知计算机,如何用2维的贴图包住3维的物体,本...

2020-08-11 15:43:08 207

原创 OpenGL基础45:光照矫正(下)之Gamma校正

接上文:OpenGL基础44:光照矫正(上)四、Gamma矫正4.1、人的视觉特性先不考虑OpenGL,甚至不考虑计算机和很多错视图一样,对于下面这张图(灰阶),如果用1表示纯白,用0表示纯白,那么这张图片的哪个位置代表的是0.5,也就是自然界的平均亮度(中灰)呢?我想看到这里的你可能会毫不犹豫的选中间,并心想:这个问题不是zz嘛?然而事实上,自然界的平均亮度0.5在这张图3/4的位置而并非正中间,也就是说,平均色在人眼中是偏白的,尽管这确实看上去有点颠覆认知、不可思议...

2020-08-08 21:26:34 174

原创 OpenGL基础44:光照矫正(上)

对于openGL的API,倒是没有必要花太多时间,重点应该还是在着色器上一、采样器、glActiveTexture和glBindTexture在之前测试简单光照时可能出现的两个问题,尽管它们可能不会被察觉:着色器中有定义对应的采样器,可是在通过glGetUniformLocation方法获取时,获取不到对应位置值 着色器中不止1个采样器,在没有给其中某个特定采样器赋纹理时,它居然也持有纹理对于①,排除了低级错误后,检查下着色器中对应的采样器是否有参与实质运算,并且这个运算还必须是有效的...

2020-08-07 16:37:38 151

原创 OpenGL基础43:抗锯齿

一、走样与反走样走样(Aliasing)就是锯齿化,反走样(Anti-aliasing)就是抗锯齿只要玩过游戏,那么都应该对抗锯齿不陌生,不少游戏也都有关于抗锯齿的设置如上图,放大的部分能很明显的看到“锯齿”边,如果了解光栅化的过程,那么也很容易理解锯齿是怎样产生的,不要以为这是什么底层的BUG,正是完全正确的流程会出现这中“锯齿”现象,它是由顶点数据像素化之后成为片段的方式所引起的二、采样参考于learnopengl.com,这里具体了解下锯齿的产生和解决用通俗易懂...

2020-08-06 15:35:47 134

原创 OpenGL基础42:实例化

一、循环渲染在前面的场景里,箱子和地面都被渲染了多次:for (int i = 0; i <= 7; i++){ model = glm::translate(glm::mat4(1.0f), positions[i]); model = glm::scale(model, glm::vec3(0.01f)); glUniformMatrix4fv(modelLoc, 1, GL_FALSE, glm::value_ptr(model)); wood....

2020-08-04 20:24:26 112

原创 OpenGL基础41:几何着色器

在顶点着色器之后,片段着色器之前,还有几何着色器,它是可选的,在《OpenGL基础3:渲染管线》这一章中就有提到了,有了几何着色器后可以做很多骚操作,更容易实现很多有意思的效果一、最简单的几何着色器(Geometry Shader)几何着色器的输入:一个或多个表示单独基本图形(primitive)的顶点,这个基本图形可以是点、线或者三角形输出:处理过后的基本图形顶点,这些顶点无论是大小还是位置,甚至是数量、基本图形单元都可以被改变、拼装最“简单”的几何着色器如下:#version...

2020-07-31 14:12:53 235 1

原创 OpenGL基础40:Uniform缓冲

前置:OpenGL基础39:GLSL内建变量与接口块想想之前代码,glUniform()和glGetUniformLocation()的使用数量是不是过于频繁了,对于每个着色器的每一个uniform变量,都需要特意去设置,不但代码特别长,而且大多都是重复的一、Uniform对象没错,就是UBO,这不知道是第几个缓冲对象(xBO)了,不过也好,这样不用去查都可以大致知道它的意思和作用在之前的例子中,几乎所有的物体着色器中都有投影矩阵和观察矩阵,值也是相同的(都处于一个世界中怎么可能不一样...

2020-07-30 16:02:26 167

原创 OpenGL基础39:GLSL内建变量与接口块

GLSL有几个以gl_为前缀的变量(内建变量),它们在着色器中能直接获取和使用,并且都有着很重要的意义,gl_Position 和 gl_FragCoord 就是两个典型的内建变量一、顶点着色器变量gl_Position:顶点着色器裁切空间输出的位置向量。想让屏幕上渲染出东西,那么就必须使用,否则将什么都看不到,在第一次接触顶点着色器之后,就一直在用它了gl_PointSize:渲染出的点的大小,需要满足以下两个条件,gl_PointSize才会是有效的:glEnable(GL...

2020-07-29 20:16:27 155

原创 OpenGL基础38:数据存储

一、缓冲数据OpenGL中的缓冲就是一块内存区域的对象,将缓冲绑定到一个特定缓冲对象的时候,就给缓冲赋予了一个特殊的意义,例如绑定到GL_ARRAY_BUFFER的时候,这个缓冲就是一个顶点数组缓冲,绑定到GL_ELEMENT_ARRAY_BUFFER的时候,这个缓冲就是个顶点索引缓冲之前的用法一直都是这样:GLuint skyboxVAO, skyboxVBO;glGenVertexArrays(1, &skyboxVAO);glGenBuffers(1, &sky...

2020-07-28 16:53:51 91

原创 OpenGL基础37:反射与折射

前置:OpenGL基础20:镜面光照一、反射不一定所有的光源都是简单的白光,不仅如此,光线也是可以多次反射的,例如一面镜子,可以从中看到远处的风景,一些金属材质的物体表面也会反射周围物体的光这主要就是着色器的改动,和漫反射以及镜面反射一样,还有一种贴图叫做反射贴图,当然了,是否是贴图只是着色器写法上的问题,有了之前的经验,搞定这个不是问题反射的计算方式和之前的镜面反射很像,,着色器如下:#version 330 corelayout (location = 0) in ve...

2020-07-21 18:25:29 225

原创 OpenGL基础36:天空盒

一、立方体贴图立方体贴图就是6个2D贴图,每个贴图都是立方体的一个面,当然这样的立方体贴图是一个整体,有自己特有的属性,可以使用方向向量对它们索引和采样立方体贴图的主要作用:其组成了一个完全封闭的空间,这就意味着从立方体中间发出任意方向的向量,一定会触碰到立方体表面的一个点,也就是立方体贴图的纹理位置,从而就可以获取所有顶点的纹理坐标,再通过这个纹理坐标就能获取到立方体贴图上正确的纹理沿着黄色的方向向量,可以得到对应黄色块的纹理坐标创建一个立方体贴图:GLuint textur...

2020-07-16 17:59:04 906

OpenGL基础学习完整代码(完整场景带优化).zip

对应的OpenGL学习博客:https://blog.csdn.net/jaihk662/category_9903113.html,第1章~第56章节完整代码。需要对应环境(openGL基本环境,SOIL库、glm库以及Assimp库、FreeType库),如何装环境的教程也在上面的链接中。此代码仅用于OpenGL入门学习

2020-09-28

OpenGL基础学习完整代码.zip

对应的OpenGL学习博客:https://blog.csdn.net/jaihk662/category_9903113.html,第1章~第45章节完整代码。需要对应环境(openGL基本环境,SOIL库、glm库以及Assimp库),如何装环境的教程也在上面的链接中。此代码仅用于OpenGL入门学习。PS:可能会有点卡主要是因为:①使用的地面模型是高模(几十万个顶点)②使用的天空盒贴图是2040x2048的超大贴图6张;没办法只找到这些资源,所以只能将就着用了

2020-08-12

Jaihk662的留言板

发表于 2020-01-02 最后回复 2020-03-24

CSDN无法发表文章,一发表就显示保存失败,请稍后重试。

发表于 2017-07-13 最后回复 2017-08-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除