parent
8668606a14
commit
5029e15ec6
13 changed files with 17 additions and 17 deletions
|
|
@ -89,7 +89,7 @@ Loads a cube map texture from disk containing six different faces. All faces and
|
|||
|
||||
#### [09 - Texture arrays](examples/texturearray/)
|
||||
|
||||
Loads a 2D texture array containing multiple 2D texture slices (each with it's own mip chain) and renders multiple meshes each sampling from a different layer of the texture. 2D texture arrays don't do any interpolation between the slices.
|
||||
Loads a 2D texture array containing multiple 2D texture slices (each with its own mip chain) and renders multiple meshes each sampling from a different layer of the texture. 2D texture arrays don't do any interpolation between the slices.
|
||||
|
||||
#### [10 - 3D textures](examples/texture3d/)
|
||||
|
||||
|
|
@ -117,7 +117,7 @@ Implements a simple CPU based particle system. Particle data is stored in host m
|
|||
|
||||
#### [16 - Stencil buffer](examples/stencilbuffer/)
|
||||
|
||||
Uses the stencil buffer and it's compare functionality for rendering a 3D model with dynamic outlines.
|
||||
Uses the stencil buffer and its compare functionality for rendering a 3D model with dynamic outlines.
|
||||
|
||||
### <a name="Advanced"></a> Advanced
|
||||
|
||||
|
|
@ -239,7 +239,7 @@ Mass-spring based cloth system on the GPU using a compute shader to calculate an
|
|||
|
||||
#### [06 - Cull and LOD](examples/computecullandlod/)
|
||||
|
||||
Purely GPU based frustum visibility culling and level-of-detail system. A compute shader is used to modify draw commands stored in an indirect draw commands buffer to toggle model visibility and select it's level-of-detail based on camera distance, no calculations have to be done on and synced with the CPU.
|
||||
Purely GPU based frustum visibility culling and level-of-detail system. A compute shader is used to modify draw commands stored in an indirect draw commands buffer to toggle model visibility and select its level-of-detail based on camera distance, no calculations have to be done on and synced with the CPU.
|
||||
|
||||
### <a name="GeometryShader"></a> Geometry Shader
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Vulkan device class
|
||||
*
|
||||
* Encapsulates a physical Vulkan device and it's logical representation
|
||||
* Encapsulates a physical Vulkan device and its logical representation
|
||||
*
|
||||
* Copyright (C) by Sascha Willems - www.saschawillems.de
|
||||
*
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ namespace vks
|
|||
}
|
||||
|
||||
/**
|
||||
* Destroy and free Vulkan resources used for the framebuffer and all of it's attachments
|
||||
* Destroy and free Vulkan resources used for the framebuffer and all of its attachments
|
||||
*/
|
||||
~Framebuffer()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -272,7 +272,7 @@ public:
|
|||
}
|
||||
|
||||
/**
|
||||
* Create the swapchain and get it's images with given width and height
|
||||
* Create the swapchain and get its images with given width and height
|
||||
*
|
||||
* @param width Pointer to the width of the swapchain (may be adjusted to fit the requirements of the swapchain)
|
||||
* @param height Pointer to the height of the swapchain (may be adjusted to fit the requirements of the swapchain)
|
||||
|
|
|
|||
|
|
@ -618,7 +618,7 @@ namespace vks
|
|||
memcpy(data, ktxTextureData, ktxTextureSize);
|
||||
vkUnmapMemory(device->logicalDevice, stagingMemory);
|
||||
|
||||
// Setup buffer copy regions for each layer including all of it's miplevels
|
||||
// Setup buffer copy regions for each layer including all of its miplevels
|
||||
std::vector<VkBufferImageCopy> bufferCopyRegions;
|
||||
|
||||
for (uint32_t layer = 0; layer < layerCount; layer++)
|
||||
|
|
@ -812,7 +812,7 @@ namespace vks
|
|||
memcpy(data, ktxTextureData, ktxTextureSize);
|
||||
vkUnmapMemory(device->logicalDevice, stagingMemory);
|
||||
|
||||
// Setup buffer copy regions for each face including all of it's miplevels
|
||||
// Setup buffer copy regions for each face including all of its miplevels
|
||||
std::vector<VkBufferImageCopy> bufferCopyRegions;
|
||||
|
||||
for (uint32_t face = 0; face < 6; face++)
|
||||
|
|
|
|||
2
data/README.md
vendored
2
data/README.md
vendored
|
|
@ -1,6 +1,6 @@
|
|||
# Additional asset pack
|
||||
|
||||
Newer assets (textures and models) will no longer be added to the repository in order to keep it's size down. Especially HDR assets tend to be much larger than most of the ldr textures and compressing them is problematic due to the multi-platform target of the examples (Not all platforms support compressed HDR texture formats).
|
||||
Newer assets (textures and models) will no longer be added to the repository in order to keep its size down. Especially HDR assets tend to be much larger than most of the ldr textures and compressing them is problematic due to the multi-platform target of the examples (Not all platforms support compressed HDR texture formats).
|
||||
|
||||
So these are provided as a separate download required to run some of the newer examples.
|
||||
|
||||
|
|
|
|||
|
|
@ -424,7 +424,7 @@ public:
|
|||
vkCmdCopyBuffer(copyCmd, stagingBuffer.buffer, compute.storageBuffers.output.buffer, 1, ©Region);
|
||||
// Add an initial release barrier to the graphics queue,
|
||||
// so that when the compute command buffer executes for the first time
|
||||
// it doesn't complain about a lack of a corresponding "release" to it's "acquire"
|
||||
// it doesn't complain about a lack of a corresponding "release" to its "acquire"
|
||||
addGraphicsToComputeBarriers(copyCmd);
|
||||
VulkanExampleBase::flushCommandBuffer(copyCmd, queue, true);
|
||||
|
||||
|
|
|
|||
|
|
@ -172,7 +172,7 @@ public:
|
|||
vkCmdBindVertexBuffers(drawCmdBuffers[i], VERTEX_BUFFER_BIND_ID, 1, &model.vertices.buffer, offsets);
|
||||
// Bind mesh index buffer
|
||||
vkCmdBindIndexBuffer(drawCmdBuffers[i], model.indices.buffer, 0, VK_INDEX_TYPE_UINT32);
|
||||
// Render mesh vertex buffer using it's indices
|
||||
// Render mesh vertex buffer using its indices
|
||||
vkCmdDrawIndexed(drawCmdBuffers[i], model.indices.count, 1, 0, 0, 0);
|
||||
|
||||
drawUI(drawCmdBuffers[i]);
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
/*
|
||||
This example implements projective cascaded shadow mapping. This technique splits up the camera frustum into
|
||||
multiple frustums with each getting it's own full-res shadow map, implemented as a layered depth-only image.
|
||||
multiple frustums with each getting its own full-res shadow map, implemented as a layered depth-only image.
|
||||
The shader then selects the proper shadow map layer depending on what split of the frustum the depth value
|
||||
to compare fits into.
|
||||
|
||||
|
|
|
|||
|
|
@ -217,7 +217,7 @@ public:
|
|||
|
||||
VkCommandBuffer copyCmd = VulkanExampleBase::createCommandBuffer(VK_COMMAND_BUFFER_LEVEL_PRIMARY, true);
|
||||
|
||||
// Setup buffer copy regions for each face including all of it's miplevels
|
||||
// Setup buffer copy regions for each face including all of its miplevels
|
||||
std::vector<VkBufferImageCopy> bufferCopyRegions;
|
||||
uint32_t offset = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -112,7 +112,7 @@ Setup for the destination mip level (1), with the dimensions for the blit destin
|
|||
imageBlit.dstOffsets[1].z = 1;
|
||||
```
|
||||
|
||||
Before we can blit to this mip level, we need to transition it's image layout to ```TRANSFER_DST```:
|
||||
Before we can blit to this mip level, we need to transition its image layout to ```TRANSFER_DST```:
|
||||
```cpp
|
||||
VkImageSubresourceRange mipSubRange = {};
|
||||
mipSubRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
|
||||
|
|
|
|||
|
|
@ -703,7 +703,7 @@ public:
|
|||
attachments[0].format = swapChain.colorFormat; // Use the color format selected by the swapchain
|
||||
attachments[0].samples = VK_SAMPLE_COUNT_1_BIT; // We don't use multi sampling in this example
|
||||
attachments[0].loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR; // Clear this attachment at the start of the render pass
|
||||
attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; // Keep it's contents after the render pass is finished (for displaying it)
|
||||
attachments[0].storeOp = VK_ATTACHMENT_STORE_OP_STORE; // Keep its contents after the render pass is finished (for displaying it)
|
||||
attachments[0].stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE; // We don't use stencil, so don't care for load
|
||||
attachments[0].stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE; // Same for store
|
||||
attachments[0].initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; // Layout at render pass start. Initial doesn't matter, so we use undefined
|
||||
|
|
@ -781,7 +781,7 @@ public:
|
|||
VK_CHECK_RESULT(vkCreateRenderPass(device, &renderPassInfo, nullptr, &renderPass));
|
||||
}
|
||||
|
||||
// Vulkan loads it's shaders from an immediate binary representation called SPIR-V
|
||||
// Vulkan loads its shaders from an immediate binary representation called SPIR-V
|
||||
// Shaders are compiled offline from e.g. GLSL using the reference glslang compiler
|
||||
// This function loads such a shader from a binary file and returns a shader module structure
|
||||
VkShaderModule loadSPIRVShader(std::string filename)
|
||||
|
|
|
|||
2
external/tinygltf/json.hpp
vendored
2
external/tinygltf/json.hpp
vendored
|
|
@ -3468,7 +3468,7 @@ class parser
|
|||
@brief an iterator for primitive JSON types
|
||||
|
||||
This class models an iterator for primitive JSON types (boolean, number,
|
||||
string). It's only purpose is to allow the iterator/const_iterator classes
|
||||
string). Its only purpose is to allow the iterator/const_iterator classes
|
||||
to "iterate" over primitive values. Internally, the iterator is modeled by
|
||||
a `difference_type` variable. Value begin_value (`0`) models the begin,
|
||||
end_value (`1`) models past the end.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue