计算机图形学
文章平均质量分 68
仰望—星空
我不懒,还没有简历
展开
-
全网最简单的软渲染器
实现一个包含面剔除功能的软光栅渲染器,附带实现效果和工程源码,本系列将一直更新,欢迎您的参与!原创 2023-06-12 02:13:58 · 504 阅读 · 0 评论 -
计算机图形学-GAMES101-13
光沿着直线传播。光线和光线不会发生碰撞。光线追踪运用光路的可逆性。光线从光源发出,会发生反射、折射,光线追踪就是模拟这个过程。追踪:从终点(眼睛或相机)开始,连接到视口上的每一个像素。连接会产生一条光路,我们沿着每条光路追踪场景中的物体。如果追踪到某个物体,我们再将物体和光源进行连线,判断物体是否能被光源照亮。如果物体能被光源照亮,那么我们就可以计算这条光路上的能量,随着进行着色。原创 2023-05-20 16:51:26 · 655 阅读 · 0 评论 -
计算机图形学-GAMES101-12阴影
硬阴影就是被本影挡住的部分,而软阴影是被部分光源照亮。如果要做出软阴影,必须使用具有一定体积大小的点光源。Shadow Mapping使用多大的分辨率?Shadow Mapping需要更多的计算。硬阴影和软阴影有什么区别?只能计算硬阴影(理论上)原创 2023-05-20 13:34:16 · 708 阅读 · 0 评论 -
计算机图形学-GAMES101-11
如上图所示,我们使用黑色的起点-终点和两个蓝色的弯曲控制点来表示一条曲线。要注意的是,我们想要连接起来的曲线连续。因为我们知道Bezaer曲线在起点和终点处的切线方向分别都等于它们和对应控制点的连线,因此我们需要使得前一条曲线的终点和对应控制点的连线经过后一条曲线起点的控制点,当然这里说的两条曲线分别的终点和起点其实是一个点,我们要求这三点共线,并且中间拿个点应该是两个控制点的终点,这样才能保证切线的大小相同。使用三维空间中的点,即可插值出三维空间中的曲线。以上保证了曲线的C1连续,工业上使用C2连续。原创 2023-05-20 12:59:58 · 1118 阅读 · 0 评论 -
计算机图形学-GAMES101-10
原模型网格->逐面Shading->逐像素Phong Shading->纹理贴图->换个纹理再贴图->环境光照。原创 2023-05-20 11:18:53 · 802 阅读 · 0 评论 -
计算机图形学-GAMES101-9
Nearset是一种纹理的过滤方式,它表示当屏幕上的像素点插值出来的纹理坐标为(x,y)时,找到纹理贴图中与(x,y)距离最近的像素点,把贴图中像素点的属性赋值给屏幕像素点。问题分析:当在远处时,一个像素点内部包含了一大块纹理区域,这一大块纹理区内颜色的变化是很快的,而我们只使用一个采样点区采样它,因此我们得到的颜色值是不足以代表这一整块区域的,也因此我们的采样频率远低于信号的频率,就会发生走样。我们根据像素的纹理坐标,找到它四周的纹理像素点,根据纹理坐标到纹理像素点之间水平和竖直的相对距离进行插值。原创 2023-05-19 20:28:55 · 1270 阅读 · 0 评论 -
CG-3D渲染器-0.1
需要注意的一件事是,如果我们要把x轴缩放0.5倍,我们通常会传入的scale_size为(1,0,0),也就是说我们默认认为传入0的缩放倍率表示不进行缩放,因此我们需要判断scale_size的分量如果为0则设置为1(缩放倍率为1即不缩放)。当旋转轴axis的起点pos不为原点时,我们先对原模型矩阵进行平移,将pos移到原点(0,0,0)上,使得旋转轴axis过原点。镜像矩阵我们可以认为不进行缩放,即倍率只能为1或-1,因此我们将参数axle设为整数int类型,这样判断其值是否为0而不进行操作,也很简单。原创 2023-05-19 16:42:21 · 941 阅读 · 0 评论 -
计算机图形学CG 学习资源和路线
注意链接中的OpenGL教程网站是旧版文档,它使用的是glew,而新版本的教程使用的是glad,简单来说glad是glew的升级版,总之学习新版肯定是更全面更好理解更利于发展的,所以如果你不是和我一样是从旧版学习文档开始的,那么我推荐你从。如果你正处于学习OpenGL阶段,但却对学习教程中的概念理解感觉不够深刻,推荐看。如果你是小白,对计算机图形学还一窍不通,建议学习。,如果遇到不会和不好理解的地方,可以看看。如果你想学习OpenGL,推荐参考。开始入门,然后可以开始学习。原创 2023-04-18 23:47:44 · 343 阅读 · 0 评论 -
逐点比较法生成圆弧
【代码】逐点比较法生成圆弧。原创 2023-03-31 21:01:01 · 550 阅读 · 0 评论 -
计算机图形学:Bresenham 线生成算法
注意:推导过程一文中的代码,由于缺少了针对不同方向的情况,因此不可使用。原创 2023-03-31 20:16:51 · 222 阅读 · 0 评论 -
计算机图形学:DDA法生成直线
本文内容摘引自《计算机图形学教程》数值微分法如下图所示:注意 直线斜率计算式:K=(y2-y1)/(x2-x1),众所周知只能针对非垂直于X轴的直线,否则x2=x1会出现除以零的错误。那么DDA算法中是否考虑了呢?答案是肯定的,测试DDA算法,DDA_line(10,0,10,100)会发现垂直的直线生成成功,并未报错,这是为什么呢? 生成直线(x1,y1)->(x2,y2),设 条件1为:x1≠x2、条件2为:y1≠y2,则一般情况下条件1和条件2至少成立一个。当x1=x2时,y1不等于y2,所以原创 2023-03-31 15:21:48 · 426 阅读 · 0 评论 -
计算机图形学:逐点比较法生成直线
本文参考书籍《计算机图形学教程》,部分图片内容摘引。原创 2023-03-31 13:09:20 · 990 阅读 · 0 评论 -
VS Stdio 导入 EasyX
今天导入一个EasyX导入了半天,最后成功了所以发文记录一下步骤。如果你也是在学习计算机图形学CG,建议你不要使用DEV C++。原创 2023-03-30 17:12:10 · 852 阅读 · 0 评论