Vulkan复习(优化)
VkCommandBuffer数组 acquire(请求图像)->record(录制命令)->submit(执行命令和渲染)->present(交换链交换,并被显示器读取) 只有一个VkCommandBuffer时: 第i+1帧acquire会正确请求到图像吗,假设上一帧的present没有执行完,行为是:等待 / 获取frontbuffe...
VkCommandBuffer数组 acquire(请求图像)->record(录制命令)->submit(执行命令和渲染)->present(交换链交换,并被显示器读取) 只有一个VkCommandBuffer时: 第i+1帧acquire会正确请求到图像吗,假设上一帧的present没有执行完,行为是:等待 / 获取frontbuffe...
创建VkInstance Vulkan单例:上下文:程序运行所依赖的外部环境 初始化vulkan: VkApplicationInfo创建APP结构体:APP名字,应用程序版本(表示当前的程序是什么版本的),API版本(1_3) VkInstanceCreateInfo创建结构体:包含VkApplicationInfo的引用,扩展数量(glfwG...
简述 特性 跨平台 具有更接近GPU的API 性能强大 支持多线程 对象 实线箭头:创建关系,指向被创建者,需要通过PhysicalDevice创建device 虚线箭头:使用关系,指向被使用者,比如Pipeline使用Com...
ShaderToy 网站链接 介绍:基于WebGL API(可以理解为opengl的网页版本),使用glsl进行开发,专注于fs创作,用于学习和分享shader算法的在线社区 使用方式: 界面: 运行窗口:渲染窗口,暂停,重置,帧率,分辨率,录屏,声音,放大, 收藏,点赞,分享 代码编辑窗口:加号...
双指针 有l,r两个指针,可同向,反向移动 同向——快慢 有l,r两个指针,都指向0 当f->next不为空,一个快一个慢移动 反向 有l,r两个指针,分别指向0,n-1 左右端 当l < r时,每次根据条件选择l++还是r– 使用场景:一维数组,搜索/判断/调...
语法 顶点数据设置 VBO:管理顶点数据,一遍一次性发送到GPU显存中 链接和布局:指定哪部分数据对应着色器中哪个顶点属性 glVertexAttribPointer(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stri...
物理仿真 动画:渲染画面连续播放,>30fps 关键帧动画:中间帧通过插值技术生成 物理仿真:通过各种物理公式,计算网格体的位置/形变,通常和渲染分步实现 导数: 数学表示: f’(x),dy/dx, f’‘(x), d²y/dx²,d(dy / dx) / dx ...
空间数据结构 八叉树 适用条件:适用于3维空间(不一定非要正方体区域,可以为长方体),物体均匀分布可以提高查询效率 思想:将空间划分并用八叉树表示, 空间->树节点, 整个空间->根节点,最小空间->叶节点, 物体存放在叶节点内 对于n叉树的每个节点子节点...
几何 隐式: 数学表达式 bool运算:并集,差值,交集 距离函数SDF:两个物体求得距离函数后混合,可以得到有趣的几何体 分型 缺点:很难知道哪些点满足表达式 优点:容易判断一个点是否满足表达式,将点带入表达式,如果结果为负在物体内,0在物体表面,为正在物体外 显示 ...
渲染管线 GPU渲染流水线(for(阶段)) 应用阶段CPU:(准备数据和状态) 准备场景数据和状态 顶点数据(顶点位置,法线方向,纹理坐标) 摄像机(位置,方向,正交/透视,裁剪空间范围) 光源(位置,数量,颜色,...