vulkan

[译]Vulkan教程(17)帧缓存

本秂侑毒 提交于 2020-07-24 18:08:01
[译]Vulkan教程(17)帧缓存 Framebuffers 帧缓存 We've talked a lot about framebuffers in the past few chapters and we've set up the render pass to expect a single framebuffer with the same format as the swap chain images, but we haven't actually created any yet. 我们在过去的章节谈论过很多次帧缓存了,我们已经设置了render pass,希望有一个帧缓存with与交换链image相同的格式,但是我们还没有创建帧缓存。 The attachments specified during render pass creation are bound by wrapping them into a VkFramebuffer object. A framebuffer object references all of the VkImageView objects that represent the attachments. In our case that will be only a single one: the color attachment.

[译]Vulkan教程(24)索引buffer

半城伤御伤魂 提交于 2020-07-24 00:57:06
[译]Vulkan教程(24)索引buffer Index buffer 索引buffer Introduction 入门 The 3D meshes you'll be rendering in a real world application will often share vertices between multiple triangles. This already happens even with something simple like drawing a rectangle: 你在真实世界应用程序中要渲染的3D网格,常常会在多个三角形之间共享顶点。这在绘制简单的矩形的时候就出现了: Drawing a rectangle takes two triangles, which means that we need a vertex buffer with 6 vertices. The problem is that the data of two vertices needs to be duplicated resulting in 50% redundancy. It only gets worse with more complex meshes, where vertices are reused in an average number of 3

WSI synchronization subpass dependency and link to color attachment output

心不动则不痛 提交于 2020-05-31 06:18:46
问题 I think I do understand how Vulkan synchronization works, but I do have a problem of understanding the synchronization with the WSI. The the Synchronization Examples, we can find this code /* Only need a dependency coming in to ensure that the first layout transition happens at the right time. Second external dependency is implied by having a different finalLayout and subpass layout. */ VkSubpassDependency dependency = { .srcSubpass = VK_SUBPASS_EXTERNAL, .dstSubpass = 0, // .srcStageMask

Android emulator Failed to create Vulkan instance

北城以北 提交于 2020-05-14 18:08:59
问题 When creating new Android emulator in Ubuntu shows following error, does this affect my vulkan game development? queryCoreProfileSupport: swap interval not found emulator: ERROR: VkCommonOperations.cpp:496: Failed to create Vulkan instance. emulator: WARNING: Ignoring invalid http proxy: Bad format: invalid port number (must be decimal) My AVD device specification are added below. 回答1: Your os seems ubuntu, try installing the graphic driver as below them restart the computer. sudo ubuntu

Android emulator Failed to create Vulkan instance

拟墨画扇 提交于 2020-05-14 18:08:40
问题 When creating new Android emulator in Ubuntu shows following error, does this affect my vulkan game development? queryCoreProfileSupport: swap interval not found emulator: ERROR: VkCommonOperations.cpp:496: Failed to create Vulkan instance. emulator: WARNING: Ignoring invalid http proxy: Bad format: invalid port number (must be decimal) My AVD device specification are added below. 回答1: Your os seems ubuntu, try installing the graphic driver as below them restart the computer. sudo ubuntu

Android emulator Failed to create Vulkan instance

半城伤御伤魂 提交于 2020-05-14 18:08:30
问题 When creating new Android emulator in Ubuntu shows following error, does this affect my vulkan game development? queryCoreProfileSupport: swap interval not found emulator: ERROR: VkCommonOperations.cpp:496: Failed to create Vulkan instance. emulator: WARNING: Ignoring invalid http proxy: Bad format: invalid port number (must be decimal) My AVD device specification are added below. 回答1: Your os seems ubuntu, try installing the graphic driver as below them restart the computer. sudo ubuntu

Android emulator Failed to create Vulkan instance

偶尔善良 提交于 2020-05-14 18:08:26
问题 When creating new Android emulator in Ubuntu shows following error, does this affect my vulkan game development? queryCoreProfileSupport: swap interval not found emulator: ERROR: VkCommonOperations.cpp:496: Failed to create Vulkan instance. emulator: WARNING: Ignoring invalid http proxy: Bad format: invalid port number (must be decimal) My AVD device specification are added below. 回答1: Your os seems ubuntu, try installing the graphic driver as below them restart the computer. sudo ubuntu

Traversal of Bounding Volume Hierachy in Shaders

ぐ巨炮叔叔 提交于 2020-05-13 05:30:05
问题 I am working on a path tracer using vulkan compute shaders. I implemented a tree representing a bounding volume hierachy. The idea of the BVH is to minimize the amount of objects a ray intersection test needs to be performed on. #1 Naive Implementation My first implementation is very fast, it traverses the tree down to a single leaf of the BVH tree. However, the ray might intersect multiple leaves. This code then leads to some triangles not being rendered (although they should). int box_index

从零开始手敲次世代游戏引擎(七十九)

北城余情 提交于 2020-05-07 16:15:49
一晃又一年过去了。。。 即便这样,如我在系列开头所说,这个系列我是不会放弃的,虽然可能会很慢,但是我会努力继续下去。 因此,今天更新一篇。 其实在这一年当中我对图形部分在不断进行重构。其中一个重点就是对应DX12/Vulkan/Metal的PSO(Pipeline State Object)概念。虽然3个图形API的PSO概念在实现细节方面并不是完全一致,但是大致的概念是共通的:将GPU的管道状态,包括 渲染管道入口处的,附属在vertex(顶点)处的属性layout; 渲染管道出口处的RT/DT的格式 固定功能(Fix Function)的设置,如 深度测试是否有效,深度测试的比较函数(>, >=, ==, <, <=, always true, always false) Stencil测试是否有效,相关测试 Shader的绑定 这些主要的概念。 其实,这基本上就对应现代GPGPU当中的Context,也就是上下文的概念。在以往,特别是诸如OpenGL这样的图形API当中,这些状态设置是混杂在绘图命令当中的,并没有单独分开进行存储。这就导致在需要改变渲染管道状态的时候,需要一系列的命令来对状态进行设置,并且: 要么每次把所有状态都重新设置一遍 要么需要在引擎当中自己跟踪状态的变化,计算出需要改变哪些设置 而DX12/Vulkan/Metal提供了PSO对象

【PathTracing】虚幻四中针对体素进行优化的基于SV(Voxel)GF的实时光线追踪

↘锁芯ラ 提交于 2020-05-03 16:31:44
写在前面: 本文将分享我在UE4中使用蓝图复现SVGF [1] (的Voxel改版)的流程。 本文将首次放出项目(可以算是开源,写得不好还请见谅)。而且不会有太多的公式,涉及的方面虽然很多但是其实在我之前的文章里都有提到。只描述这个项目是怎么用蓝图来实现的。 项目包含: 一个全蓝图和材质的光追器(包括BRDF,Pathtracing,体素求交), 一个体素化函数库(目前有点Bug但是基本不影响使用), 一个体素操作函数库 一个蓝图和材质实时去噪器。 没有额外的C++代码,全文基于蓝图。 项目写成不容易,能多点赞请多点赞。 PS:本人准备以后转到b站,在白嫖(不是)之前,关注我的b站账号并三连吧~(我会尽量更新视频/教程),项目链接也会放在b站的视频下方: 【虚幻4】基于CBR和SVGF的实时体素光线追踪_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili ​ www.bilibili.com 时间隔得比较久,实现及描述上可能会有疏漏,还请各位斧正。 目录 一、管线概述 1.GBuffer(VoxelBuffer) 2.Raytrace 3.Upsampling 4.Atrous Filtering 5.Temporal AA 6.其他(包括数据的准备) 1.Pingpong 2.体素 二、棋盘格与Upsampling 1.棋盘格 2.Upsampling 三、SV(Voxel)GF