shensunbo Blog

「离开世界之前 一切都是过程」

vscode正则表达式

为mesh名称添加后缀 (“mesh_name”:\s*”)([^”]+)(“) $1$2_suffix$3

phong 模型

光照 环境光颜色与漫反射颜色相乘作为环境光 法线 将法线由模型空间变换到世界空间 使用去除平移后的模型矩阵的逆转置矩阵,需要再CPU端进行计算。(如果模型矩阵不包含非同一缩放,逆转置矩阵等于模型矩阵) glm::mat3 normalMatrix = glm::transpose(glm::inverse(glm::mat3(modelMatrix))) 法线贴图 ...

figma导出svg

figma导出svg 选中要导出的元素 ctrl + shift + E or file -> export 如果显示无法导出,在properties中选择export 的+号增加一个导出配置,可以选择svg或者png

程序、链接和库

linux 进程布局 Linux Process Memory Layout

H.264 BASIC

overview SPS 存储视频序列的​​全局编码参数​​,解码器需要先读取 SPS 才能正确解析后续的视频数据 PPS 存储​​单帧图像的编码参数​​,解码每一帧前需先读取对应的 PPS [NAL Unit 1: SPS] → [NAL Unit 2: PPS] → [NAL Unit 3: I-slice] → [NAL Unit 4: P-slice]... f...

cpp 中的锁

demo 简单的锁与条件变量实例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <condition_variable> #include <mutex> std::mutex mtx; std::condition_variable cv; bool ready = false; void ...

ffmpeg 将摄像头数据转发给WSL2

windows 查看摄像头设备的名字 ffmpeg -list_devices true -f dshow -i dummy 发流,设备名称要修改成自己的。使用TCP,使用UDP失败了,可能是公司防火墙设置问题。摄像头原始流格式可能需要修改 ffmpeg -f dshow -vcodec mjpeg -video_size...

使用blender将figma上的矢量图(SVG)转换为fbx

从figma网站下载UI矢量图,比如雷达UI之类的 创建一个blender工程,导入svg 使用测量工具测量建模大小,按住ctrl可以吸附到边或者点上。调整到合适大小 调整材质和其他属性 右键 convert to - Mesh 都调整好之后,导出fbx

blender 模型处理

pack and unpack pack 可以将外部的文件如纹理图片等,嵌入到blender工程中。路径 file-external data-pack resources. 如果纹理图片是嵌入在模型文件中的,在该纹理的image属性中,路径显示是灰色的,且unpack按钮高亮 unpack 嵌入在FBX或者blender工程中的图片,可以解包,路径 file-exter...

blender 常用操作

修改物体本地坐标系原点 进入编辑模式,选中要作为新的原点的点 对齐游标,按 Shift + S → Cursor to Selected 返回物体模式,设置原点:右键 → Set Origin → Origin to 3D Cursor 测量 按住ctrl吸附到点或者边 按住xyz固定坐标轴 给物体增加控制节点 创建一个空物体(empty),移动到合适的...