Comments (2)
Yes this would be useful since the test we have currently doesn't create one from scratch.
One strategy is to declare a lot of things on the stack, e.g.:
cgltf_image images[3] = {
{(char*)"tile color", (char*)"tile_color.png"},
{(char*)"tile orm", (char*)"tile_orm.png"},
{(char*)"tile normal", (char*)"tile_normal.png"},
};
cgltf_image& color_image = images[0];
cgltf_image& orm_image = images[1];
cgltf_image& normal_image = images[2];
cgltf_texture textures[3] = {
{(char*)"tile color", &color_image},
{(char*)"tile orm", &orm_image},
{(char*)"tile normal", &normal_image},
};
cgltf_texture& color_texture = textures[0];
cgltf_texture& orm_texture = textures[1];
cgltf_texture& normal_texture = textures[2];
cgltf_material materials[4] = {};
cgltf_material& tile_bottom_material = materials[0];
cgltf_material& tile_top_material = materials[1];
cgltf_material& tile_glow_material = materials[2];
cgltf_material& player_material = materials[3];
tile_top_material.name = (char*)"tile top";
tile_top_material.alpha_cutoff = 0.5f;
tile_top_material.has_pbr_metallic_roughness = true;
tile_top_material.pbr_metallic_roughness = {
.base_color_texture = {&color_texture, 0, 1.0f},
.metallic_roughness_texture = {&orm_texture, 0, 1.0f},
.base_color_factor = {1, 1, 1, 1},
.metallic_factor = 1,
.roughness_factor = 1,
};
tile_top_material.occlusion_texture = {&orm_texture, 0, 1.0f};
tile_top_material.normal_texture = {&normal_texture, 0, 1.0f};
etc...
from cgltf.
Here's a more complete example of writing a gltf from scratch:
https://github.com/prideout/par/blob/master/test/test_octasphere.cpp
We could add a pointer to this from the README, or we could copy it into a unit test. I'll defer to @jkuhlmann on how best to proceed.
from cgltf.
Related Issues (20)
- Suggestion: store indices instead of pointers in the data structures HOT 4
- Add support for MSFT_texture_dds extension HOT 1
- Potential Undefined Behaviour in "cgltf_component_read_index"
- How to enable draco support? HOT 3
- fopen or strcpy this function or variable is unsafe. HOT 1
- Library will not compile if using GCC in Windows.
- Node parent sanity check prevents loading files created with UniGLTF-1.27 HOT 5
- different joints for same primitive
- Stack allocate cgltf_data structure? HOT 1
- Possible to have individual flags for metallic and roughness? HOT 4
- Invalid gltf file with EXT_mesh_gpu_instancing HOT 2
- Double-precision transform hierarchy
- native app EXT_meshopt_compression support HOT 2
- GLTF primitive type not written correctly? HOT 1
- Support for KHR_animation_pointer HOT 2
- load glb crash HOT 3
- Support for EXT_texture_webp HOT 1
- Reading glTF binary files in GLB format HOT 2
- Incorrect parsing of numeric values from glb file HOT 2
- Based on the current node, how to find out the bufferView number? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cgltf.