Graphics
未读Materials and AppearancesMaterial == BRDF
Graphics
未读Games101 Rasterization
For Your Information(FYI),可以看作一个整体
三角形: 最基本的多边形
只能是一个平面 比如四边形可以对折成为两个三角形成为不同平面 三角形不可以 除非变成两个三角形
明确简单的内部 可以判断一个点是否在三角形内
bayer patten
Jaggies 锯齿 Aliasing (Jaggies)走样 混淆 锯齿
12345678910采样(Sampling)是一个关键概念,用于将连续的信号或数据转换为离散的信号或数据。采样通常用于图像处理、渲染、纹理映射和抗锯齿等领域。采样的基本概念采样点(Sample Point):在一个连续的信号或图像中选取的离散点。这些点用于近似表示原始信号。采样率(Sampling Rate):每单位长度(时间、空间等)上采样点的数量。较高的采样率通常能更精确地表示原始信号。Nyquist 频率:为了避免混叠(aliasing),采样率必须至少是信号最高频率的两倍,这个频率称为 Nyquist 频率。采样在图形学中的应用图像采样:将连续的图像信号转换为离散的像素点。每个像素 ...
Graphics
未读Ray Tracing 光线追踪(Whitted-Style Ray Tracing)
Why Ray Tracing?光栅化不能很好的表示全局的效果
软阴影(Soft shadows)
光滑表面的反射(Glossy reflection)
间接照明(Indirect illumination)不断漫反射
Light Rays 光线
光线沿直线传播 (尽管是错的)
管线不碰撞尽管相交(尽管是错的)
光线从光源出发到我们的眼睛 (光路可逆)
Ray Casting
生成一张图通过每个像素投射射线
通过这些点通过看是否和光源连接判断 是否对光源也可见 是否是阴影
Generating Eye Rays
Recursive (Whitted-Style)Ray Tracing
Ray-Surface Intersection 求交点Ray EquationRay is defined by its origin and a direction vector
t是时间 O是起始位置 d是方向
Ray Intersection With Sphere
R ...
Graphics
未读Ray Tracing (2)
Why ray tracing
whitted-style ray tracing
光在任何地方都可能弹射,在任何交点都算着色和阴影,加到一个像素上
Ray-object intersections (Implicit surface; Triangles)
Axis-Aligned Bounding Boxes (AABBs)包围核结构
- Understanding - pairs of slabs 对面
- Ray-AABB intersection
Today
Using AABBs to accelerate ray tracing (AABB如何加速光线追踪)
- uniform grids 均匀格子
- Spatial partitions 空间划分
Uniform Spatial Partition(Grids)均匀空间分区Process-Build Acceleration Grid
找到建包围核
将包围核分成小格子
找到和物体重叠的小格子
当光线进入格子的时候 看格子是否存在物体 存在物体判断是否和物体相交
Gr ...
Graphics
未读Ray Tracing(3)Reviewing Concepts
Irradiancepower per unit area
Lambert’s Cosine Law (漫反射部分)
用来说明这个光线照射的部分
Correction:Irradiance FalloffIrradiance 在衰减 Intensity 并没有变化
Radiance 光线
power 单位立体角 单位投影面积
Incident Radiance 入射光线Irradiance和Radiance 的区别就是是否会有方向性
Bidirectional Reflectance Distribution Function(BRDF)双向反射分布函数Reflection at a Point 反射
难点 其他物体也可以反射光线到这个点 Recursive EquationThe Rendering Equation 渲染方程
发射光源 和入射光的反射
Reflection Equation 反射方程
Rendering Equation as Integral Equation
先定义光源 物 ...
Graphics
未读Games 101 Transformation矩阵知识复习矩阵的转置
逆矩阵存在矩阵M以及矩阵N,假如M*N = 矩阵I(Identify Matrix单位矩阵),那么矩阵M和矩阵N互为逆矩阵。
第二个解释
第三个解释
正交矩阵矩阵的逆等于矩阵的转置
在三维变换中
旋转(a)角度和旋转(-a)角度是互逆的操作
旋转里,矩阵的逆等于旋转矩阵的转置
在旋转里 旋转矩阵的逆等与往相反的方向旋转相同的角度
先线性变换 再平移
欧拉角(Euler angle)指的是绕参考坐标系主轴(x,y,z x , y , z )之一旋转的角度。 也就是说,若新的坐标系是绕旧的坐标系的主轴(x,y,z x , y , z )之一旋转形成的,那么这个旋转角就是欧拉角
Transformation罗德里格斯公式同二维坐标一样 先平移 再变换再平移回来
View / Camera TransformationzzzProjection transformaionOrthographic projection 正交投影工程制图
Perspective Projection 透视投 ...
Docker(2)以ubuntu容器为例,在宿主机和容器之间添加数据卷。添加数据卷的命令 是
docker run -it –privileged=true -v /宿主机绝对路径目录:/容器内目录 镜像名
12[root@shjava101 ~]# docker run -it --privileged=true -v /tmp/hostData:/tmp/dockerData1 ubuntu /bin/bash
查看宿主机目录 查看宿主机目录 在宿主机对应的目录里面创建一个文件 回到容器目录查看 我们发现在容器中,这个文件也会存在。
要宿主机和容器之间的目录形成挂载关系,不管是容器内数据发生变化, 还是宿主机内部数据发生变化,都会被另一方即时同步
容器停止了,当再次启动容器之后,文件依然还是可以同步
如何查看数据卷挂载成功docker inspect 容器id
1[root@shjava101 ~]# docker inspect 1c88215ff319
上面的挂载,默认在容器内部的目录都可以进行读写操作。如果我们只想在容 器内部进 ...
Graphics
未读Shadow mapping光栅化问题解决阴影的方法
Shadow Mapping 会产生走样现象
Pass1 : Render from Light从光源看向场景 记录看到的深度(Z-Buffer)
Pass 2A Render from Eye
从眼睛或摄像机出发 可以看到另外一些东西
Pass 2B:Project to light
分别以摄像机和光源视角计算深度 (例如橙色的线)如果深度一致, 说明点可以被相机和光源所看到
深度不一致 说明在阴影中
Visualizing Shadow MappingStep one :从光源看过去,记录深度信息
Step two :对比深度关系
光源看不到的在阴影里,实际深度和记录深度是否相等
问题
浮点数判断精度大小比较困难
记录在shadow map里需要分辨率 如果分辨率低会阴影有锯齿
软硬阴影完全看不到光源(本影区域)和能看到部分光源
点光源不会出现呢软阴影 出现软阴影说明光源有一定大小
Docker1. 概念开发环境、测试环境以及生产环境需求
系统平滑移植,容器虚拟化技术
基于Go语言实现的云开源项目 Docker的主要目标是“Build,Ship and Run Any App,Anywhere”,也就是通过对应用组件的封装、分发、部署、运行等生 命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环 境能够做到“一次镜像,处处运行”。
Linux容器技术的出现就解决了这样一个问题,而 Docker 就是在它的基础上发展过 来的。将应用打成镜像,通过镜像成为运行在Docker容器上面的实例,而 Docker容 器在任何操作系统上都是一致的,这就实现了跨平台、跨服务器。只需要一次配置好 环境,换到别的机子上就可以一键部署好,大大简化了操作。
解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布 的容器虚拟化技术。
1.2 容器与虚拟机1.2.1 虚拟机虚拟机(virtual machine)就是带环境安装的一种解决方案。 它可以在一种操作系统里面运行另一种操作系统,比如在Windows10系统里面运行 Linux系统CentO ...
视频播放器 (1)视频编码视频中图像编码的主要依赖:
帧内的图像压缩编码
帧之间的数据压缩编码
帧内的图像压缩很好理解就是对于图片中相同像素的压缩。
帧之间的数据压缩就主要依赖连续帧之间具有极高的相似性的原理。如一段视频有十几秒都是不动的或者有50%的画面都是不变的,那么这块存储就可以节省了。
视频压缩的核心原理就是将多张图像进行编码后生产成一段一段的 GOP ( Group of Pictures ) , 解码器在播放时则是读取一段一段的GOP进行解码后读取画面再渲染显示。一组GOP中的帧分为三类(有些视频只有两类,没有B帧),分别是:
I P B
I帧:是自带全部信息的独立帧,是最完整的画面(占用的空间最大),无需参考其它图像便可独立进行解码。一个GOP视频序列中的第一个帧,始终都是I帧。
P帧:“帧间预测编码帧”,需要参考前面的I帧和/或P帧的不同部分,才能进行编码。P帧对前面的P和I参考帧有依赖性,也就是视频中运动的部分。P帧压缩率比较高,占用的空间较小。
B帧:“双向预测编码帧”,以前帧后帧作为参考帧。不仅参考前面,还参考后面的帧,所以,它的压缩率最高,可以达 ...