Monday, December 14, 2020

gltf 2.0 with Blender

glTF™ (GL Transmission Format) is used for transmission and loading of 3D models in web and native applications. glTF reduces the size of 3D models and the runtime processing needed to unpack and render those models. This format is commonly used on the web, and has support in various 3D engines such as Unity3D, Unreal Engine 4, and Godot.


This importer/exporter supports the following glTF 2.0 features:


Meshes

Materials (Principled BSDF) and Shadeless (Unlit)

Textures

Cameras

Punctual lights (point, spot, and directional)

Animation (keyframe, shape key, and skinning)


Meshes


glTF’s internal structure mimics the memory buffers commonly used by graphics chips when rendering in real-time, such that assets can be delivered to desktop, web, or mobile clients and be promptly displayed with minimal processing. As a result, quads and n-gons are automatically converted to triangles when exporting to glTF. Discontinuous UVs and flat-shaded edges may result in moderately higher vertex counts in glTF compared to Blender, as such vertices are separated for export. Likewise, curves and other non-mesh data are not preserved, and must be converted to meshes prior to export.



Materials


The core material system in glTF supports a metal/rough PBR workflow with the following channels of information:


Base Color

Metallic

Roughness

Baked Ambient Occlusion

Normal Map

Emissive



Imported Materials

The glTF material system is different from Blender’s own materials. When a glTF file is imported, the add-on will construct a set of Blender nodes to replicate each glTF material as closely as possible.


The importer supports Metal/Rough PBR (core glTF), Spec/Gloss PBR (KHR_materials_pbrSpecularGlossiness) and Shadeless (KHR_materials_unlit) materials.


Exported Materials


The exporter supports Metal/Rough PBR (core glTF) and Shadeless (KHR_materials_unlit) materials. It will construct a glTF material based on the nodes it recognizes in the Blender material. The material export process handles the settings described below.


When image textures are used by materials, glTF requires that images be in PNG or JPEG format. The add-on will automatically convert images from other formats, increasing export time.


File Format Variations

The glTF specification identifies different ways the data can be stored. The importer handles all of these ways. The exporter will ask the user to select one of the following forms:



glTF Binary (.glb)

This produces a single .glb file with all mesh data, image textures, and related information packed into a single binary file.


glTF Separate (.gltf + .bin + textures)

This produces a JSON text-based .gltf file describing the overall structure, along with a .bin file containing mesh and vector data, and optionally a number of .png or .jpg files containing image textures referenced by the .gltf file.




References:

https://docs.blender.org/manual/en/2.80/addons/io_scene_gltf2.html#file-format-variations


No comments:

Post a Comment