Renamed mesh example to glTF scene
This commit is contained in:
parent
3ae053d005
commit
e0c15f62da
12 changed files with 15 additions and 15 deletions
|
|
@ -103,9 +103,9 @@ Loads a 2D texture array containing multiple 2D texture slices (each with its ow
|
||||||
|
|
||||||
Generates a 3D texture on the cpu (using perlin noise), uploads it to the device and samples it to render an animation. 3D textures store volumetric data and interpolate in all three dimensions.
|
Generates a 3D texture on the cpu (using perlin noise), uploads it to the device and samples it to render an animation. 3D textures store volumetric data and interpolate in all three dimensions.
|
||||||
|
|
||||||
#### [11 - Model rendering](examples/mesh/)
|
#### [11 - glTF scene loading and rendering](examples/gltfscene/)
|
||||||
|
|
||||||
Loads a 3D model and texture maps from a common file format (using [assimp](https://github.com/assimp/assimp)), uploads the vertex and index buffer data to video memory, sets up a matching vertex layout and renders the 3D model.
|
Shows how to load the scene from a [glTF 2.0](https://github.com/KhronosGroup/glTF) file. The structure of the glTF 2.0 scene is converted into data structures required to render the scene with Vulkan.
|
||||||
|
|
||||||
#### [12 - Input attachments](examples/inputattachments)
|
#### [12 - Input attachments](examples/inputattachments)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
cmake_minimum_required(VERSION 3.4.1 FATAL_ERROR)
|
cmake_minimum_required(VERSION 3.4.1 FATAL_ERROR)
|
||||||
|
|
||||||
set(NAME mesh)
|
set(NAME gltfscene)
|
||||||
|
|
||||||
set(SRC_DIR ../../../examples/${NAME})
|
set(SRC_DIR ../../../examples/${NAME})
|
||||||
set(BASE_DIR ../../../base)
|
set(BASE_DIR ../../../base)
|
||||||
|
|
@ -24,6 +24,7 @@ include_directories(${EXTERNAL_DIR}/glm)
|
||||||
include_directories(${EXTERNAL_DIR}/gli)
|
include_directories(${EXTERNAL_DIR}/gli)
|
||||||
include_directories(${EXTERNAL_DIR}/imgui)
|
include_directories(${EXTERNAL_DIR}/imgui)
|
||||||
include_directories(${EXTERNAL_DIR}/assimp)
|
include_directories(${EXTERNAL_DIR}/assimp)
|
||||||
|
include_directories(${EXTERNAL_DIR}/tinygltf)
|
||||||
include_directories(${ANDROID_NDK}/sources/android/native_app_glue)
|
include_directories(${ANDROID_NDK}/sources/android/native_app_glue)
|
||||||
|
|
||||||
target_link_libraries(
|
target_link_libraries(
|
||||||
|
|
@ -4,7 +4,7 @@ apply from: '../gradle/outputfilename.gradle'
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 26
|
compileSdkVersion 26
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "de.saschawillems.vulkanMesh"
|
applicationId "de.saschawillems.vulkanglTFScene"
|
||||||
minSdkVersion 19
|
minSdkVersion 19
|
||||||
targetSdkVersion 26
|
targetSdkVersion 26
|
||||||
versionCode 1
|
versionCode 1
|
||||||
|
|
@ -49,14 +49,14 @@ task copyTask {
|
||||||
}
|
}
|
||||||
|
|
||||||
copy {
|
copy {
|
||||||
from '../../../data/shaders/mesh'
|
from '../../../data/shaders/gltfscene'
|
||||||
into 'assets/shaders/mesh'
|
into 'assets/shaders/gltfscene'
|
||||||
include '*.*'
|
include '*.*'
|
||||||
}
|
}
|
||||||
|
|
||||||
copy {
|
copy {
|
||||||
from '../../../data/models/voyager'
|
from '../../../data/models/FlightHelmet/glTF'
|
||||||
into 'assets/models/voyager'
|
into 'assets/models/FlightHelmet/glTF'
|
||||||
include '*.*'
|
include '*.*'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
package="de.saschawillems.vulkanMesh">
|
package="de.saschawillems.vulkanglTFScene">
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:label="Vulkan model rendering"
|
android:label="Vulkan glTF scene rendering"
|
||||||
android:icon="@drawable/icon"
|
android:icon="@drawable/icon"
|
||||||
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
|
||||||
<activity android:name="de.saschawillems.vulkanSample.VulkanActivity"
|
<activity android:name="de.saschawillems.vulkanSample.VulkanActivity"
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
glslangvalidator -V mesh.vert -o mesh.vert.spv
|
|
||||||
glslangvalidator -V mesh.frag -o mesh.frag.spv
|
|
||||||
|
|
@ -64,13 +64,13 @@ set(EXAMPLES
|
||||||
dynamicuniformbuffer
|
dynamicuniformbuffer
|
||||||
gears
|
gears
|
||||||
geometryshader
|
geometryshader
|
||||||
|
gltfscene
|
||||||
hdr
|
hdr
|
||||||
imgui
|
imgui
|
||||||
indirectdraw
|
indirectdraw
|
||||||
inlineuniformblocks
|
inlineuniformblocks
|
||||||
inputattachments
|
inputattachments
|
||||||
instancing
|
instancing
|
||||||
mesh
|
|
||||||
multisampling
|
multisampling
|
||||||
multithreading
|
multithreading
|
||||||
multiview
|
multiview
|
||||||
|
|
|
||||||
|
|
@ -452,6 +452,7 @@ public:
|
||||||
|
|
||||||
VkClearValue clearValues[2];
|
VkClearValue clearValues[2];
|
||||||
clearValues[0].color = defaultClearColor;
|
clearValues[0].color = defaultClearColor;
|
||||||
|
clearValues[0].color = { { 0.25f, 0.25f, 0.25f, 1.0f } };;
|
||||||
clearValues[1].depthStencil = { 1.0f, 0 };
|
clearValues[1].depthStencil = { 1.0f, 0 };
|
||||||
|
|
||||||
VkRenderPassBeginInfo renderPassBeginInfo = vks::initializers::renderPassBeginInfo();
|
VkRenderPassBeginInfo renderPassBeginInfo = vks::initializers::renderPassBeginInfo();
|
||||||
|
|
@ -682,8 +683,8 @@ public:
|
||||||
vertexInputStateCI.pVertexAttributeDescriptions = vertexInputAttributes.data();
|
vertexInputStateCI.pVertexAttributeDescriptions = vertexInputAttributes.data();
|
||||||
|
|
||||||
const std::array<VkPipelineShaderStageCreateInfo, 2> shaderStages = {
|
const std::array<VkPipelineShaderStageCreateInfo, 2> shaderStages = {
|
||||||
loadShader(getAssetPath() + "shaders/mesh/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT),
|
loadShader(getAssetPath() + "shaders/gltfscene/mesh.vert.spv", VK_SHADER_STAGE_VERTEX_BIT),
|
||||||
loadShader(getAssetPath() + "shaders/mesh/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT)
|
loadShader(getAssetPath() + "shaders/gltfscene/mesh.frag.spv", VK_SHADER_STAGE_FRAGMENT_BIT)
|
||||||
};
|
};
|
||||||
|
|
||||||
VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0);
|
VkGraphicsPipelineCreateInfo pipelineCI = vks::initializers::pipelineCreateInfo(pipelineLayout, renderPass, 0);
|
||||||
Loading…
Add table
Add a link
Reference in a new issue