2018年4月5日

C99 inline关键字

摘要: C99 inline 一直以来都用C++用得比较多,这个学期做操作系统的课设用回了C,结果一波內联函数居然链接不过去……查了查资料,C99引入的inline和C++的inline语义区别是很大的,我算是踩了这个坑。 C++的inline除了建议编译器把函数内容内联以外,主要的作用就是能够让你把一个函 阅读全文

posted @ 2018-04-05 19:36 AirGuanZ 阅读(475) 评论(0) 推荐(0) 编辑

2017年12月24日

关于C++内存对齐

摘要: 关于C++内存对齐 C++11从标准层面引入了一些和内存对齐相关的特性,标准库也增加了对应的组件,这里稍微总结一下。 取得某个类型的对齐值 C++中的Object(对象)是指一块满足以下条件的内存区域: 1. 具有size属性,即能用 取其大小。 2. 具有alignment属性,即能用 取其对齐量 阅读全文

posted @ 2017-12-24 17:48 AirGuanZ 阅读(414) 评论(0) 推荐(0) 编辑

2017年11月15日

HLSL中constant variables的packing规则

摘要: HLSL中constant variables的packing规则 参考 "MSDN" 上的官方文档。一般而言,HLSL将数据打包为4字节对齐,此外,它不允许数据跨16字节(即4个float的vector)的访问。这个“此外”是我比较关心的,对使用者最直接的影响就是用constant buffer进 阅读全文

posted @ 2017-11-15 17:43 AirGuanZ 阅读(532) 评论(0) 推荐(0) 编辑

2017年2月11日

全局照明算法基础——从辐射亮度到渲染方程

摘要: 全局照明(Global Illumination)问题上已经有很多著名的算法,如路径追踪(Path Tracing),辐照度(Radiosity)等。绝大部分书籍/教材都直接介绍了做法,在理论方面有所欠缺(比如算法的正确性)。这段时间在看《Advanced Global Illumination》, 阅读全文

posted @ 2017-02-11 20:00 AirGuanZ 阅读(5799) 评论(0) 推荐(0) 编辑

2017年2月4日

透视投影矩阵推导

摘要: 计算机图形学中,建模自小孔成像原理的透视摄像机是常用的摄像机模型。然而,由于光栅化渲染中的几何变换多基于四阶方阵与齐次坐标表示的向量的乘法,而四阶方阵只能表示仿射变换,无法实现透视摄像机“近大远小”的特性,因此透视摄像机模型的实现要多费一番功夫。本文给出了透视投影矩阵的一个较直观的推导。 阅读全文

posted @ 2017-02-04 16:36 AirGuanZ 阅读(23701) 评论(4) 推荐(4) 编辑

2017年2月3日

基于光线追踪的渲染中景深(Depth of field)效果的实现

摘要: 图形学离线渲染中常用的透视摄像机模型时根据小孔成像的原理建立的,其实现通常是从向成像平面上发射ray,并把trace这条ray的结果作为成像平面上对应交点的采样结果。即: 图片来自《Fundamentals of Computer Graphics》 现实中的镜头拍摄的图像有景深(Depth of 阅读全文

posted @ 2017-02-03 17:57 AirGuanZ 阅读(5311) 评论(2) 推荐(0) 编辑

2017年1月7日

直线的光栅化算法

摘要: 直线的光栅化:朴素的DDA方法、Bresenham算法 阅读全文

posted @ 2017-01-07 01:48 AirGuanZ 阅读(1108) 评论(0) 推荐(0) 编辑

2016年12月31日

透视投影后的线性插值校正

摘要: 1/z在屏幕空间表现出线性性,可以利用这一点来进行透视投影变换后的具有线性插值性的属性值(比如纹理坐标)的修正 阅读全文

posted @ 2016-12-31 21:26 AirGuanZ 阅读(1411) 评论(0) 推荐(0) 编辑

导航