技术栈
vulkan
千里马-horse
3 天前
rendering
·
vulkan
·
平面反射
Building a Simple Engine -- Advanced Topics--Planar reflections
现实场景中,光洁的地面、透亮的窗户总能吸引目光,游戏开发中我们常会模拟这类视觉效果。本引擎选用了一种实用且稳定的实现方案 ——平面反射(Planar Reflections)。本文将讲解平面反射的定义、引擎选用该方案的原因、具体实现方式,以及其他反射方案的适用场景。
千里马-horse
6 天前
rendering
·
vulkan
·
lod
·
mipmaps
Building a Simple Engine -- Advanced Topics -- Mipmaps & LOD
多级渐远纹理(Mipmaps)通过采样纹理的预过滤版本,有效减少走样(aliasing)问题并降低显存带宽占用。细节层次(LOD)的核心本质就是:「当前应使用哪一级 mip 纹理?」。
千里马-horse
7 天前
rendering
·
vulkan
·
forward+
Building a Simple Engine -- Advanced Topics -- Forward+ rendering
Forward+ 保留了开发者所熟悉的前向着色模型,同时将逐像素光照循环的计算范围,限定为可能对当前像素产生影响的光源。其核心实现逻辑为:将屏幕划分为多个瓦片(tile)(也可按需增加 Z 轴切片),并通过compute pass(计算通道)生成逐瓦片的光源列表。
千里马-horse
9 天前
pipeline
·
shader
·
rendering
·
vulkan
Building a Simple Engine -- Mobile Development -- Conclusion
接下来我们将展示如何将上述所有组件整合到一个完整的、针对移动平台优化的 Vulkan 应用中:以下简短、聚焦的教程基于简易引擎展开,是极佳的后续学习内容:
千里马-horse
9 天前
android
·
ios
·
rendering
·
vulkan
Building a Simple Engine -- Mobile Development -- Platform considerations
为移动平台开发 Vulkan 应用,需要理解 Android 和 iOS 各自的专属要求与约束。本节将剖析各平台的核心适配要点,以及如何针对性调整引擎以适配不同平台。
千里马-horse
9 天前
shader
·
内存优化
·
rendering
·
纹理优化
·
vulkan
·
压缩格式
Building a Simple Engine -- Mobile Development -- Performance optimizations
移动设备的硬件约束与桌面系统存在显著差异。本节将探讨实现移动平台高性能表现所需的核心性能优化策略。注:本章聚焦通用移动平台性能优化。针对基于瓦片的渲染器(Tile-Based Rendering,TBR)GPU 的专属优化实践,请参考Rendering Approaches: Tile-Based Rendering.。
千里马-horse
11 天前
rendering
·
vulkan
·
崩溃处理
Building a Simple Engine -- Tooling -- Crash minidumps
即便经过全面的测试与调试,应用在生产环境中仍可能发生崩溃。此时,健壮的崩溃处理机制能帮助你快速诊断并修复问题。本章聚焦于实用的 GPU 崩溃诊断方案(如 NVIDIA Nsight Aftermath、AMD Radeon GPU Detective),同时阐明操作系统进程小型转储文件(minidump)的作用与局限性 —— 这类文件通常缺失 GPU 状态信息,仅凭其本身很难定位图形渲染 / 设备丢失类问题的根本原因。
千里马-horse
12 天前
pipeline
·
shader
·
rendering
·
vulkan
Building a Simple Engine -- Tooling -- Introduction
在前述章节中,我们已搭建起简易引擎的基础框架,实现了渲染管线、相机系统、模型加载等核心组件,以及音频、物理等关键子系统。如今,我们将深入探讨支撑专业级 Vulkan 应用开发、调试与发布的工具链生态体系。
千里马-horse
1 个月前
c++
·
rendering
·
vulkan
Ray Tracing -- Ray query shadows
目标:在片段着色器中通过光线查询(Ray Query)实现简单的阴影检测。我们将从每个片段的位置向光源投射一条光线,若光线在到达光源前命中任何几何体,则将该片段调暗(实现硬阴影效果)。
千里马-horse
1 个月前
shader
·
rendering
·
vulkan
·
vertex
·
multithreaded
Multithreading with Vulkan
目录Vulkan 多线程编程简介概述实现线程安全的资源管理工作线程实现修改计算着色器更新主循环高级多线程技术
千里马-horse
2 个月前
vulkan
Drawing a triangle -- setup -- Instance
目录创建实例(Creating an instance)遇到 VK_ERROR_INCOMPATIBLE_DRIVER 错误(Encountered VK_ERROR_INCOMPATIBLE_DRIVER)
千里马-horse
2 个月前
validation
·
vulkan
·
layers
Drawing a triangle -- setup -- Validation layers
目录什么是验证层?(What are validation layers?)使用验证层(Using validation layers)
李坤林
3 个月前
android
·
vulkan
Android Vulkan 开启VK_GOOGLE_DISPLAY_TIMING 后,一个vsync 会释放两个imageBuffer现象分析
android vulkan 程序,当开启VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME 功能, 跑在android12 上, swapchain 用的是三缓冲,所有当sufaceflinger 一个vsync 来的时候, 图像缓冲中有app已经渲染好的两个的的图像, 同一个vsync 中会释放两个buffer(如上图), 一个是两图像中的前一个, 一个是上一帧显示完成的。
不知所云,
3 个月前
c++
·
vulkan
1. 开篇简介
目的是通过对vulkan的学习和使用,构建起计算机图形学的知识体系和结构,其中也包含c/c++ 基础知识和开发环境的学习使用以及c++ 20及以上特性的探索,SDL库的使用, 还有一部分线性代数知识的学习及运用。最终目的是能基于vulkan做一个图形界面库和3d渲染器。
CHPCWWHSU
5 个月前
opengl
·
osg
·
投影矩阵
·
vulkan
·
vsg
osg中相机矩阵到vsg相机矩阵的转换
在OSG和VSG中,相机的核心功能主要包括视图变换与投影变换:视图变换负责将世界坐标系中的物体转换到相机坐标系,而投影变换则进一步将相机坐标系中的物体映射到投影空间。由于OpenGL与Vulkan在底层实现上存在差异,Vulkan的深度范围定义为[0, 1],且y轴方向由上向下,这与OpenGL有所不同。因此,本章将重点讨论从OSG相机矩阵到VSG相机矩阵的转换方法,并进一步讨论投影矩阵之间的转换。
星星也在雾里
7 个月前
vulkan
Vulkan入门教程 | 第二部分:创建实例
前言:本教程为笔者依据教程https://docs.vulkan.net.cn/spec/latest/index.html#_about进行Vulkan学习并结合自己的理解整理的笔记,供大家学习和参考。
Hi20240217
9 个月前
嵌入式
·
rk3588
·
vulkan
·
ai推理
·
armnn
RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试
本文在RK3588芯片上完成了以下任务:输出输出输出输出输出输出输出输出
TYYJ-洪伟
10 个月前
音视频
·
gpu
·
vulkan
·
图像渲染
【Vulkan 入门系列】创建帧缓冲、命令池、命令缓存,和获取图片(六)
这一节主要介绍创建帧缓冲(Framebuffer),创建命令池,创建命令缓存,和从文件加载 PNG 图像数据,解码为 RGBA 格式,并将像素数据暂存到 Vulkan 的 暂存缓冲区中。
CHPCWWHSU
1 年前
c++
·
osg
·
vulkan
·
vsg
vulkanscenegraph显示倾斜模型(5.4)-相机操纵器
在VSG(Vulkan Scene Graph)中,系统支持用户通过鼠标或触摸输入与三维场景进行交互,从而动态控制相机的位置和姿态,实现与三维场景的交互。VSG提供了多种相机操纵器,其中Trackball是一种常见的相机操作器,模拟了一个虚拟的轨迹球,用户可拖动鼠标来旋转、平移和缩放场景。机操纵器的本质是通过用户交互动态修改视图矩阵,从而改变模型在视口中的显示效果。本章探讨对事件的封装vsg::UIEvent,以此作为基础,将深入探讨vsg::trackball的实现原理,重点剖析旋转、平移和缩放三大操作
CHPCWWHSU
1 年前
c++
·
osg
·
vulkan
·
vsg
vulkanscenegraph显示倾斜模型(5.3)-相机
在Vulkan中,相机的概念并非由API直接提供,而是由应用程序实现。相机的核心功能包括视图变换和投影变换:视图变换将世界坐标系中的物体转换到相机坐标系,投影变换则将相机坐标系中的物体转换到投影空间。在VSG(Vulkan Scene Graph)框架中,vsg::Camera类封装了视图矩阵和投影矩阵,并提供了便捷的接口来管理相机。本章将深入探讨Vulkan中的矩阵变换原理,以及VSG对相机功能的封装与实现。