
图形学
文章平均质量分 78
程颖不是陈颍是沉吟
钢化玻璃心
展开
-
GAMES101——Lecture 07: Shading 1 (lllumination, Shading and Graphics Pipeline)
文章目录1 照明和阴影最基础的模型:Blinn-Phong反射模型漫反射高光环境光最终的Blinn-Phong 模型着色频率如何知道逐顶点的法线是什么?当这些物体都变成三角形之后,变成屏幕上的一个个像素点之后,这些像素的值和颜色应该是什么呢?这个就是着色的功能。下一步操作为着色。挪动一下光源后,物体并没有发生变化,但是物体的颜色却发生了变化。这个问题应该如何解决,就是着色的作用。这门课中着色的定义:对不同的物体应用不同的材质这样一个过程。因为不同的材质肯定和光线的相互作用有不同的方法,可通过这种不同原创 2021-07-09 14:34:31 · 502 阅读 · 0 评论 -
GAMES101——Lecture 09: Shading 3 (Texture Mapping Cont)
文章目录3.1 如何在三角形内部进行属性的插值?3.1.1 重心坐标什么是重心坐标?如何求得三个系数,也就是如何求得重心坐标呢?方法一:面积比方法二:公式法3.1.2 求得重心坐标后,如何用它进行插值呢?3.2 如何将纹理应用在实际的渲染中?3.2.1 纹理的放大(纹理太小了怎么办?)纹理过小导致的问题描述双线性插值双向三次的插值3.2.2 如果纹理太大了怎么办?纹理太大导致的问题描述解决方法一:超采样解决方法二:Mipmap什么叫mipmap?如何知道要查询的正方形区域有多大?如何用mipmap来查询正方原创 2021-07-09 14:28:15 · 810 阅读 · 0 评论 -
GAMES101——Lecture 08: Shading 2 (Shading, Pipeline and Texture Mapping)
文章目录2 实时渲染管线管线概述着色器GPU3 纹理映射2 实时渲染管线管线概述先把三维空间中的点投影到二维空间中去,然后再指定每哪三个点可以组成一个三角形。三角形会覆盖屏幕上的哪几个像素点(光栅化 ),对这些像素点进行着色。着色器着色器shader 是用来定义任意的顶点,怎样操作任意的像素或者片段。网站推荐,只用关注场景如何渲染Inigo Quilez http://shadertoy.com/view/ld3Gz2GPU用于执行图形管线计算的专用处理器。GPU 本身是一个高原创 2021-07-09 14:09:40 · 348 阅读 · 0 评论 -
GAMES101——Leature 06: Rasterization 2 (Antialiasing and Z-Buffering)
文章目录1 反走样 Antialiasing1.1 采样的理论采样会产生不同的问题:反走样的理念:采样之前做个模糊操作(滤波)频域傅里叶变换通过频率来分析走样是怎么回事儿滤波 = 去除某些频率内容 = 卷积(=平均)采样 = 重复频率内容1.2 实际的图形学中如何做反走样方法一:增加采样率方法二:反走样模糊操作MSAA采样操作2 可见性与遮挡2.1 画家算法原理涉及到一个问题2.2 问题解决方法:深度缓存/缓冲 z-buffer1 反走样 Antialiasing1.1 采样的理论采样不止可以发生在不原创 2021-07-09 14:07:28 · 692 阅读 · 3 评论 -
GAMES101——Leature 05: Rasterization 1 (Triangles)
0 回顾上节课的内容上节课主要说了观测变换(其中包括了视图变换和投影变换):视图变换:利用摄像机和物体间的相对运动关系,始终把摄像机从一个任意的位置移动到一个经典的位置:在原点,看向 -z 轴,并且向上方向是 y 轴。然后把其他所有的物体和这个相机一样的移动。这样就可以保证把模型变换应用在所有的模型上,把所有的视图变换也应用在所有的模型上。在此之后,我们就知道所有的物体都是由一个标准的位置看过去,接下来就需要把物体投影成二维的照片。投影变换(将三维物体投影到二维照片上)正交投影:直接把原创 2021-07-09 11:43:36 · 399 阅读 · 0 评论 -
GAMES101——Leature 03: Transformation
0 回顾上节课的内容向量点乘叉乘矩阵1 为什么要学习transform变换?模型变换 model视图变换 view2 2D transformations使用矩阵表示转换均匀缩放、非均匀缩放 反射变换 切变 旋转默认围绕坐标原点,逆时针旋转 以上的几种变换都是线性变换。也就是以上的变换都可以写成一个矩阵 x 向量的形式。x' = Mx3 齐次坐标在进行平移变换的时候,变换不能以单个的矩阵形式表示,所以此原创 2021-07-09 11:39:27 · 250 阅读 · 0 评论 -
Renderdoc源码研究——duration计算过程
文章目录源码逻辑Timer Queries 小结1、要了解的是什么?2、为什么需要了解?3、了解的方式是?踩的坑源码逻辑1、点击面板上的图标,触发事件 on_timeDraws_clicked()GPUCounter 这个结构体中会存储很多变量,其中的EventGPUDuration 变量就是存放的duration的值。【定义】GPUCounter:: EventGPUDuration —— 用于表示:此事件在 GPU 上花费的时间,由两个 GPU 时间戳之间的增量衡量。// Event原创 2021-07-09 11:18:21 · 2640 阅读 · 3 评论 -
Marching Cubes算法——图像数据到网格数据
概述之前的博文已经完整的介绍了三维图像数据和三角形网格数据。在实际应用中,利用遥感硬件或者各种探测仪器,可以获得表征现实世界中物体的三维图像。比如利用CT机扫描人体得到人体断层扫描图像,就是一个表征人体内部组织器官形状的一个三维图像。其中的感兴趣的组织器官通过体素的颜色和背景加以区别。如下图的人体足骨扫描图像。医生通过观察这样的图像可以分析病人足骨的特征,从而对症下药。 这类应用在计算...转载 2019-05-20 15:44:46 · 2493 阅读 · 1 评论 -
AMiner《计算机图形学研究报告》
只是简要记录一下我自己觉得感兴趣和有用的内容,为今后继续深入研究做些准备吧。图形学的应用游戏:有三大应用(几何学、动画和绘制)科学计算可视化:目前广泛应用于医学、流体力学、有限元分析和气象分析中。尤其在医学领域中,可视化有着广阔的发展前途。影视制作:近些年来人们普遍将注意力转向基于物理模型的计算机动画生成方法。虚拟现实仿真技术计算机辅助设计与制造:计算机图形学被用来进行土建工程、机...转载 2019-04-18 16:37:56 · 1089 阅读 · 0 评论 -
简单的冯氏光照模型
冯氏光照模型分为三个部分:环境光 Ambient 即使在完全黑暗的情况下,世界上也通常会有一些光亮(比如:月光、远处分散的光源),物体不会是完全黑暗的。漫反射光 Diffuse 视觉上最显著的分量。物体的某一部分越是正对着光源,那么这部分就越亮。镜面光 Specular 模拟有光泽物体上的亮点。这个颜色会更加倾向于光的颜色。环境光照void main(){ ...原创 2019-04-18 12:41:23 · 894 阅读 · 0 评论 -
总结GLM库中glm::transform(位移), glm:scale(缩放), glm::rotate(旋转)
在使用下面所介绍的函数之前请记得包含相关头文件,一般包含这几个就够了:#include <glm/glm.hpp>#include <glm/gtc/matrix_transform.hpp>#include <glm/gtc/type_ptr.hpp>下面这三个函数主要在模型矩阵中运用,因为模型矩阵的主要功能也就是旋转、平移、缩放。glm:...原创 2019-04-18 10:03:48 · 36658 阅读 · 5 评论 -
坐标系统 -- 四大空间及三大变换矩阵
坐标系统 -- 四大空间及三大变换矩阵局部空间: 物体所在的坐标空间,即对象最开始所在的地方。有可能你创建的所有模型都以(0, 0, 0)为初始位置,然而它们会最终出现在世界的不同位置。世界空间: 如果我们将所有的物体导入到程序当中,它们有可能会全挤在世界的原点(0, 0, 0)上,这并不是我们想要的结果。我们希望物体在一个大的世界空间中合理地位于我们想让它处在的位置。观察空间: 就是从摄...原创 2019-04-17 14:19:01 · 728 阅读 · 0 评论 -
linux下查看opengl版本
创建test.c文件#include <stdio.h>#include <GL/glut.h>int main(int argc, char** argv){ glutInit(&argc,argv); //显示模式初始化 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB|GLUT_DEPTH);...转载 2018-12-24 18:52:07 · 10052 阅读 · 4 评论 -
ubuntu16.04环境下 安装 Qt Creator 和 Qt library4.8.6
下载前的准备工作安装依赖库sudo apt-get install libfontconfig1-dev libfreetype6-dev libx11-dev libxcursor-dev libxext-dev libxfixes-dev libxft-dev libxi-dev libxrandr-dev libxrender-dev安装 Qt Creater下载地址:http:/...原创 2018-12-24 15:47:34 · 4060 阅读 · 0 评论 -
在Ubuntu下卸载QT
1、在Linux的软件中心安装如果你在安装的时候,选择的是默认路径,那么应该是: /opt/Qt5.12.0 (以5.12.0版本举例)如果在安装的时候是自定义的安装路径,则进入该安装的文件夹下.找到MaintenanceTool文件.然后输入命令:./MaintenanceTool会弹出界面点击删除卸载即可.2、编译源文件安装如果是编译安装,直接删除你安装的文件夹....原创 2018-12-24 14:43:53 · 5583 阅读 · 0 评论 -
OpenGL中常用的函数中文手册
https://blog.youkuaiyun.com/flycatdeng/article/details/82588903 OpenGL ES 2.0 中文API文档(转载)目录glGenBuffers -- 生成缓冲对象的名字glBindBuffer -- 绑定一个已命名的缓冲对象glBufferData -- 把用户定义的数据复制到当前绑定缓冲的函数glGenB...原创 2018-12-14 20:12:20 · 6600 阅读 · 1 评论