存档

‘图形学基础’ 分类的存档

GPU渲染架构和对应的优化

2020年11月13日 评论已被关闭

IMR,TBR,TBDR三种架构和移动设备的渲染优化。

阅读全文...

分类: 图形学基础, Unity, 渲染 标签:

蒙皮的原理

2019年9月24日 评论已被关闭

一个模型分为关节(joint, 或者称骨头bone)和网格,网格由很多顶点构成,每个顶点具有诸多顶点属性。在关节位置变动后,要将这些变化作用到mesh的顶点上,也就是蒙皮(skinning),本文说明蒙皮的原理。

阅读全文...

分类: 图形学基础, 游戏开发 标签:

在fragment shader中获得表面法线

2019年9月10日 评论已被关闭

在做某些效果,比如flat shade的时候希望能获得表面的法线,而不是顶点法线插值的结果。要在shader中读取面法线,除了从外部传入面法线外,可以使用dfdx和dfdy构建面法线。

阅读全文...

分类: 图形学基础, OpenGL 标签:

采样时决定Minify和Magnify的方法

2019年9月10日 评论已被关闭

OpenGL允许设置纹理的过滤,分为GL_TEXTURE_MIN_FILTER和GL_TEXTURE_MAG_FILTER两种。如果采样点的像素被认为是Minify了的,则用GL_TEXTURE_MIN_FILTER,如果是为认为是Magnify了的,用GL_TEXTURE_MAG_FILTER,决定用哪一个和mipmap无关,mipmap的三线性过滤通过_MIPMAP_NEAREAST和_MIPMAP_LINEAR决定。默认情况下,GL_TEXTURE_MAG_FILTER 的过滤方式是GL_LINEAR,GL_TEXTURE_MIN_FILTER 的过滤方式是GL_NEAREST_MIPMAP_LINEAR。

阅读全文...

分类: 图形学基础, OpenGL 标签:

Mipmap LOD的计算

2019年9月9日 评论已被关闭

现在的GPU在光栅化后不是逐像素单个渲染,而是分成2x2=4个的像素分块,每个线程处理4个。之所以这样处理是为了保存像素的偏导数信息,在计算mipmap等级和面法线等时候很有用。

阅读全文...

分类: 图形学基础, OpenGL 标签:

物体Transform变换的顺序

2019年9月9日 评论已被关闭
分类: 图形学基础, Unity, OpenGL 标签:

影响纹理采样结果的因素

2019年9月7日 评论已被关闭
分类: 图形学基础, OpenGL, 渲染 标签:

纹理采样和过滤

2019年9月7日 评论已被关闭

GPU使用线性插值得到的UV,从纹理中采样得到颜色,并在屏幕上重建。由于纹理的Texel是离散的,而UV是连续的浮点值,在采样纹理颜色时,要从离散的texel中得到最终得结果,这和其他采样如音频类似。纹理是对自然采样得到的离散结果,在屏幕上重建要使用各类过滤方法,以达到尽可能的还原自然。

阅读全文...

分类: 图形学基础, Unity, OpenGL 标签:

损失细节的原因和增加细节的操作

2019年9月6日 评论已被关闭
分类: 图形学基础, 渲染 标签:

【置顶】要点

2019年9月6日 评论已被关闭
分类: 图形学基础 标签: