aboutsummaryrefslogtreecommitdiffstatsci
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2019-04-27 04:17:04 +0200
committerj-p <jp_bruyere@hotmail.com>2019-05-02 03:07:11 +0200
commit04160ef015304a7f28308ea43aa1a959b84a78fc (patch)
treeb489f723be3b0691c5c93fbad568c340f2a467eb
parent997ebab9c71d81478581c672c8ba7dc0ed05e2fc (diff)
glb support
-rw-r--r--samples/deferred/main.cs3
-rw-r--r--vke/src/glTFLoader.cs6
2 files changed, 7 insertions, 2 deletions
diff --git a/samples/deferred/main.cs b/samples/deferred/main.cs
index 985a4d0..def9ee0 100644
--- a/samples/deferred/main.cs
+++ b/samples/deferred/main.cs
@@ -265,6 +265,7 @@ namespace deferred {
string[] modelPathes = {
"../data/models/DamagedHelmet/glTF/DamagedHelmet.gltf",
+ "../data/models/Hubble.glb",
"/mnt/devel/vulkan/glTF-Sample-Models-master/2.0/Avocado/glTF/Avocado.gltf",
"/mnt/devel/vulkan/glTF-Sample-Models-master/2.0/BarramundiFish/glTF/BarramundiFish.gltf",
"/mnt/devel/vulkan/glTF-Sample-Models-master/2.0/BoomBoxWithAxes/glTF/BoomBoxWithAxes.gltf",
@@ -283,7 +284,7 @@ namespace deferred {
"/home/jp/gltf/camaro/scene.gltf"
};
- model = new PbrModel (presentQueue, modelPathes[0],
+ model = new PbrModel (presentQueue, modelPathes[1],
descLayoutTextures,
AttachmentType.Color,
AttachmentType.PhysicalProps,
diff --git a/vke/src/glTFLoader.cs b/vke/src/glTFLoader.cs
index 6e6359f..cf18110 100644
--- a/vke/src/glTFLoader.cs
+++ b/vke/src/glTFLoader.cs
@@ -55,8 +55,10 @@ namespace CVKL {
public GCHandle[] bufferHandles;
List<Mesh> meshes;
+ string path;
public glTFLoader (string path, Queue _transferQ, CommandPool _cmdPool) {
+ this.path = path;
transferQ = _transferQ;
cmdPool = _cmdPool;
baseDirectory = System.IO.Path.GetDirectoryName (path);
@@ -78,7 +80,9 @@ namespace CVKL {
if (loadedBuffers[bufferIdx] == null) {
//load full buffer
string uri = gltf.Buffers[bufferIdx].Uri;
- if (uri.StartsWith ("data", StringComparison.Ordinal))
+ if (string.IsNullOrEmpty(uri))//glb
+ loadedBuffers[bufferIdx] = gltf.LoadBinaryBuffer (bufferIdx, path);
+ else if (uri.StartsWith ("data", StringComparison.Ordinal))
loadedBuffers[bufferIdx] = loadDataUri (gltf.Buffers[bufferIdx]);//TODO:check this func=>System.Buffers.Text.Base64.EncodeToUtf8InPlace
else
loadedBuffers[bufferIdx] = File.ReadAllBytes (Path.Combine (baseDirectory, gltf.Buffers[bufferIdx].Uri));