音视频开发
未读FFMPEG+SDL播放器架构
目录
libavcodec: 提供了一系列编码器的实现。
libavformat: 实现在流协议,容器格式及其本IO访问。
libavutil: 包括了hash器,解码器和各利工具函数。
libavfilter: 提供了各种音视频过滤器。
libavdevice: 提供了访问捕获设备和回放设备的接口。
libswresample: 实现了混音和重采样。
libswscale: 实现了色彩转换和缩放工能。
基本概念
音/视频流:路音/视频称为一路流
容器 :MP4、 FLV、MOV等文件格式。可以存放多路音视频文件。以 MP4 为例,就可以存放一路视频流,多路音频流,多路字幕流。
channel:声道。在一路音频流中,可以有单声道,双声道或立体声。
FFmpeg处理音视频流程
FFmpeg指令ffmpeg [global_options] {[input_file_options] -i input_url} …
{[output_file_options] output_url} …
信息查询
参数
- ...
Games 101 Geometry 几何几何种类 隐式和显式
Implicit 隐式表示几何会告诉在这个表面上的点满足怎样的关系
隐式表示 看出一个图形形状比较难
但方便判断这个点在不在这个面上
Explicit 显示表达
直接写出点
通过参数映射的方法表示出来
对于显示 判断一个点在不在表面上比较难
Algebraic Surfaces (implicit)隐式表达表面
Constructive Solid Geometry (Implicit)CSG
Distance Functions (Implicit) 距离函数距离函数是指空间上任何一个点到你想要表述的这个几何形体上任意一个点的最小距离 这个距离可以为正或者负
外部为正 内部为负
得到两个物体的距离函数 可以做融合 blending
如果想让blend融合表示运动信息
SDF :Sigiend distance fuction 有向距离函数
Level Set Methods (Also implicit)水平集
Fractals(Implicit)分型(套娃)Implicit Representat ...
Games 101 HomeworkHomework 01234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677#include<cmath>#include<eigen3/Eigen/Core>#include<eigen3/Eigen/Dense>#include<iostream>#define M_PI 3.14159265358979323846int main(){ // Basic Example of cpp std::cout << "Example of cpp \n"; float a = 1.0, b = 2.0; std::cout << a << std::endl; std::cout ...
Games 101 Illumination,Shading and Graphics Pipeline
Visibility / occlusion
Z-buffering 深度缓存 深度缓冲
Shading
Illumination & Shading
Graphics Pipeline
概念补充半程向量半程向量(Halfway Vector)是计算机图形学中的一个概念,通常用于光照计算,特别是在实现镜面反射(Specular Reflection)时。它是光源方向和观察方向的归一化中间向量。使用半程向量可以简化光照计算中的镜面反射部分,使计算更加高效和准确。
Painter’s Algorithm 画家算法先画远处的 近处覆盖远处的
但是深度的定义较为困难 比如这个正方体 如果先画左边在华上面右上角便不会出现一条线
Z-Buffer 解决画家算法的问题
Depth Z buffer这张图 距离越近 颜色越深
Shading 着色在绘画上 :引入明暗和颜色的不同
A Simple Shading Model (Bli ...
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 透视投 ...