Fixing typos and adding more details
This commit is contained in:
parent
90bebea66b
commit
21fc655237
5 changed files with 12 additions and 4 deletions
|
|
@ -91,7 +91,7 @@ Replacing if/else by callable shaders. The code to execute the lighting is done
|
||||||
|
|
||||||
## [Ray Query](vkrt_tuto_rayquery.md.htm)
|
## [Ray Query](vkrt_tuto_rayquery.md.htm)
|
||||||
|
|
||||||
Inkoking ray interestion queries directly from the fragment shader to cast shadow rays.
|
Invoking ray intersection queries directly from the fragment shader to cast shadow rays.
|
||||||
|
|
||||||
* Ray tracing directly from the fragment shader
|
* Ray tracing directly from the fragment shader
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -202,7 +202,7 @@ Finally, here is the Vulkan Device Memory view from Nsight Graphics:
|
||||||
|
|
||||||
We can also modify the code to use the [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) from AMD.
|
We can also modify the code to use the [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator) from AMD.
|
||||||
|
|
||||||
Download [vk_mem_alloc.h](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/vk_mem_alloc.h) from GitHub and add this to the `current` folder.
|
Download [vk_mem_alloc.h](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/blob/master/src/vk_mem_alloc.h) from GitHub and add this to the `shared_sources` folder.
|
||||||
|
|
||||||
There is already a variation of the allocator for VMA, which is located under [nvpro-samples](https://github.com/nvpro-samples/shared_sources/tree/master/nvvkpp). This allocator has the same simple interface as the `AllocatorDedicated` class in `allocator_dedicated_vkpp.hpp`, but will use VMA for memory management.
|
There is already a variation of the allocator for VMA, which is located under [nvpro-samples](https://github.com/nvpro-samples/shared_sources/tree/master/nvvkpp). This allocator has the same simple interface as the `AllocatorDedicated` class in `allocator_dedicated_vkpp.hpp`, but will use VMA for memory management.
|
||||||
|
|
||||||
|
|
@ -249,8 +249,7 @@ In `setup()`
|
||||||
VmaAllocatorCreateInfo allocatorInfo = {};
|
VmaAllocatorCreateInfo allocatorInfo = {};
|
||||||
allocatorInfo.physicalDevice = physicalDevice;
|
allocatorInfo.physicalDevice = physicalDevice;
|
||||||
allocatorInfo.device = device;
|
allocatorInfo.device = device;
|
||||||
allocatorInfo.flags |=
|
allocatorInfo.flags = VMA_ALLOCATOR_CREATE_BUFFER_DEVICE_ADDRESS_BIT;
|
||||||
VMA_ALLOCATOR_CREATE_KHR_DEDICATED_ALLOCATION_BIT | VMA_ALLOCATOR_CREATE_KHR_BIND_MEMORY2_BIT;
|
|
||||||
vmaCreateAllocator(&allocatorInfo, &m_vmaAllocator);
|
vmaCreateAllocator(&allocatorInfo, &m_vmaAllocator);
|
||||||
m_alloc.init(device, m_vmaAllocator);
|
m_alloc.init(device, m_vmaAllocator);
|
||||||
~~~~
|
~~~~
|
||||||
|
|
|
||||||
|
|
@ -186,6 +186,10 @@ At the begining of `HelloVulkan::raytrace`, call
|
||||||
|
|
||||||
The application will now antialias the image when ray tracing is enabled.
|
The application will now antialias the image when ray tracing is enabled.
|
||||||
|
|
||||||
|
Adding `resetFrame()` in `HelloVulkan::onResize()` will also take care of clearing the buffer while resizing the window.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Resetting Frame on UI Change
|
## Resetting Frame on UI Change
|
||||||
|
|
||||||
The frame number should also be reset when any parts of the scene change, such as the light direction or the background color. In `renderUI()` in `main.cpp`, check for UI changes and reset the frame number when they happen:
|
The frame number should also be reset when any parts of the scene change, such as the light direction or the background color. In `renderUI()` in `main.cpp`, check for UI changes and reset the frame number when they happen:
|
||||||
|
|
|
||||||
|
|
@ -185,6 +185,10 @@ void main()
|
||||||
}
|
}
|
||||||
~~~~
|
~~~~
|
||||||
|
|
||||||
|
!!! Note
|
||||||
|
Adding a new shader requires to rerun CMake to added to the project compilation system.
|
||||||
|
|
||||||
|
|
||||||
## `main.cpp`
|
## `main.cpp`
|
||||||
|
|
||||||
In `main`, after we set which hit group an instance will use, we can add the data we want to set through the shader record.
|
In `main`, after we set which hit group an instance will use, we can add the data we want to set through the shader record.
|
||||||
|
|
|
||||||
|
|
@ -1601,6 +1601,7 @@ tracing descriptor set. Add the binding of the material buffer and the array of
|
||||||
```` C
|
```` C
|
||||||
layout(binding = 1, set = 1, scalar) buffer MatColorBufferObject { WaveFrontMaterial m[]; } materials[];
|
layout(binding = 1, set = 1, scalar) buffer MatColorBufferObject { WaveFrontMaterial m[]; } materials[];
|
||||||
layout(binding = 3, set = 1) uniform sampler2D textureSamplers[];
|
layout(binding = 3, set = 1) uniform sampler2D textureSamplers[];
|
||||||
|
layout(binding = 4, set = 1) buffer MatIndexColorBuffer { int i[]; } matIndex[];
|
||||||
````
|
````
|
||||||
|
|
||||||
The declaration of the material is the same as that used for the rasterizer and is defined in
|
The declaration of the material is the same as that used for the rasterizer and is defined in
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue