Interview
未读Behavior QuestionTight Deadline
Deliver Result
Tell me a time when you work under tight deadline
Why is so tight (explain the situation)
what have you done to accelerate the development process
get more colleague involved
ask for consult/guidance from some senior engineers
cut off some feature
Quick Decision with Incomplete DataPrinciple: Bias for Action
Tell me a time when you had to make a quick decision with limited or incomplete data.
Why was the data incomplete?
What step ...
VCPKG 使用安装VCPKG1. 克隆库12git clone https://github.com/microsoft/vcpkg.gitcd vcpkg
2. 安装库1./bootstrap-vcpkg.bat
3. 使用123456789101112// 查找库./vcpkg search <library-name>./vcpkg search glfw// 安装库./vcpkg install <library-name>./vcpkg install glfw3./vcpkg install <package-name>:<version>// 查看安装包和版本号vcpkg list// 查看详细版本信息vcpkg x-history fmtvcpkg remove package
4. 集成1./vcpkg integrate install
(最简单的)VS-2022搭建opengl开发环境_vcpkg安装opengl-CSDN博客
https://blog.tryhardzhang.xyz/2024/08/02/graphics/opengl/Opengl/
https://blog.tryhardzhang.xyz/2024/07/30/intern/FFMPE%E4%B8%8ESDL%E6%92%AD%E6%94%BE%E5%99%A8%E6%9E%B6%E6%9E%84/
https://blog.tryhardzhang.xyz/2024/07/20/intern/%E8%A7%86%E9%A2%91%E6%92%AD%E6%94%BE%E5%99%A8/
OpenGL
与窗口分离
OpenGL本身不负责创建窗口、管理窗口事件或者处理输入设备。这些任务通常由其他库或操作系统提供的窗口系统接口来处理。
由于viewport视口
右手坐标系
GLFWGLFW(Graphics Library Framework)是一个用于创建窗口、处理输入以及管理OpenGL上下文的开源库。它简化了OpenGL程序的开发,提供了跨平台的接口,使得开发者可以专注于渲染和图形处理,而不必担心底层平台特定的窗口系统和输入处理 ...
音视频开发
未读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 ...