All Projects → atteneder → Gltfast

atteneder / Gltfast

Licence: apache-2.0
glTF runtime loading library for Unity

Projects that are alternatives of or similar to Gltfast

3d Game Shaders For Beginners
🎮 A step-by-step guide to implementing SSAO, depth of field, lighting, normal mapping, and more for your 3D game.
Stars: ✭ 11,698 (+7398.72%)
Mutual labels:  unity, unity3d, graphics, 3d, webgl
Unity Dithered Transparency Shader
Unity material and shader for applying clipped, dithered transparency
Stars: ✭ 174 (+11.54%)
Mutual labels:  unity, unity3d, graphics, 3d
Xeogl
A WebGL-based 3D engine for technical visualization. Not actively maintained.
Stars: ✭ 920 (+489.74%)
Mutual labels:  graphics, 3d, webgl, gltf
Klaksyphon
Syphon plugin for Unity
Stars: ✭ 149 (-4.49%)
Mutual labels:  unity, unity3d, graphics
Drawmeshwithmotionvectors
An example showing how to generate per-object motion vectors when using DrawMesh.
Stars: ✭ 65 (-58.33%)
Mutual labels:  unity, unity3d, graphics
Vertexanimationjob
Vertex animation with C# Job System and new Mesh API
Stars: ✭ 82 (-47.44%)
Mutual labels:  unity, unity3d, graphics
Unity Core Project
Core Framework for Unity
Stars: ✭ 42 (-73.08%)
Mutual labels:  unity, unity3d, webgl
Gpu Planetary Rendering
GPU atmosphertic scattering and planet generation in Unity 3D
Stars: ✭ 92 (-41.03%)
Mutual labels:  unity, unity3d, graphics
Temporalreprojectionexample
Temporal reprojection example for Unity
Stars: ✭ 82 (-47.44%)
Mutual labels:  unity, unity3d, graphics
Wechart
Create all the [ch]arts by cax or three.js - Cax 和 three.js 创造一切图[表]
Stars: ✭ 152 (-2.56%)
Mutual labels:  graphics, 3d, webgl
Hilo3d
Hilo3d, a WebGL Rendering Engine.
Stars: ✭ 123 (-21.15%)
Mutual labels:  graphics, 3d, webgl
Noiseball3
A Unity example that shows how to use the new implementation of DrawProcedural.
Stars: ✭ 147 (-5.77%)
Mutual labels:  unity, unity3d, graphics
Nnao
Neural Network Ambien Occlusion based on http://theorangeduck.com/page/neural-network-ambient-occlusion
Stars: ✭ 57 (-63.46%)
Mutual labels:  unity, unity3d, graphics
Kino
A collection of custom post processing effects for Unity
Stars: ✭ 1,054 (+575.64%)
Mutual labels:  unity, unity3d, graphics
Pcxeffects3
Unity VFX with point cloud
Stars: ✭ 121 (-22.44%)
Mutual labels:  unity, unity3d, graphics
Lwrpshaders
A collection of high customizable unlit shaders for Lightweight Render Pipeline
Stars: ✭ 125 (-19.87%)
Mutual labels:  unity, unity3d, graphics
3dhop
3D Heritage Online Presenter
Stars: ✭ 89 (-42.95%)
Mutual labels:  graphics, 3d, webgl
Textureupdateexample
An example showing how to update textures from a native plugin in Unity.
Stars: ✭ 133 (-14.74%)
Mutual labels:  unity, unity3d, graphics
Grubo
Audio visual experience with Roland Groovebox MC-101 and the Unity game engine
Stars: ✭ 41 (-73.72%)
Mutual labels:  unity, unity3d, graphics
Unitystandalonefilebrowser
A native file browser for unity standalone platforms
Stars: ✭ 1,002 (+542.31%)
Mutual labels:  unity, unity3d, webgl

glTFast 🚀

openupm GitHub issues GitHub license

glTFast enables loading glTF™ (GL Transmission Format) asset files in Unity.

It focuses on speed, memory efficiency and a small build footprint.

Try the WebGL Demo and check out the demo project.

Features

glTFast supports runtime loading of glTF 2.0 files.

It supports large parts of the glTF 2.0 specification plus many extensions and runs on following platforms:

  • WebGL
  • iOS
  • Android
  • Windows
  • macOS
  • Linux
  • Universal Windows Platform

It is planned to become feature complete. Most notable missing features are:

  • No animations
  • No morph targets

See the list of features/extensions for details and limitations.

Installing

The easiest way to install is to download and open the Installer Package

It runs a script that installs glTFast via a scoped registry.

Afterwards glTFast and further, optional packages are listed in the Package Manager (under My Registries) and can be installed and updated from there.

Optional dependencies

Alternative: Install via GIT URL

Add glTFast via Unity's Package Manager ( Window -> Package Manager ). Click the ➕ on the top left and choose Add package from GIT URL.

Package Manager -> + -> Add Package from git URL

Enter the following URL:

https://github.com/atteneder/glTFast.git

To add support for Draco mesh compression, repeat the last step and also add the DracoUnity packages using this URL:

https://gitlab.com/atteneder/DracoUnity.git

Note: You have to have a GIT LFS client (large file support) installed on your system. Otherwise you will get an error that the native library file (dll on Windows) is corrupt!

glTFast 2.x requires Unity 2019.3 or newer. For older Unity versions see Legacy Installation.

Usage

You can load a glTF asset from an URL or a file path.

Load via Component

Add a GltfAsset component to a GameObject.

GltfAsset component

Load via Script

var gltf = gameObject.AddComponent<GLTFast.GltfAsset>();
gltf.url = "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0/Duck/glTF/Duck.gltf";

See Load via Script in the detailed documentation for instructions how to customize the loading behaviour via script.

Materials and Shader Variants

❗ IMPORTANT ❗

glTFast uses custom shaders that you have to include in builds in order to make materials work. If materials are fine in the Unity Editor but not in builds, chances are some shaders (or variants) are missing.

Read the section Materials and Shader Variants in the Documentation for details.

Advanced

The loading behavior can be highly customized:

See the Documentation for details.

Roadmap

Find plans for upcoming changes at the milestones.

Motivation

Goals

  • Stay fast, memory efficient and small
  • Become feature complete
    • Support 100% of the glTF 2.0 specification
    • Support all official Khronos extensions
    • Support selected vendor extension
  • Universally usable…
    • …across all popular Unity versions
    • …across all platforms and devices
    • …across different project setups (all important render pipelines, GameObject or entity component system based, DOTS, Tiny, etc.)
  • Allow customization

Extended goals

  • glTF Import (create prefab from glTF in the Editor)
  • glTF Authoring (create optimized glTFs from prefabs)
  • glTF Runtime Export

Non-goals

  • glTF 1.0 backwards compatibility

Out of scope

Ideas worth pursuing, but not within this package:

  • Asset lifetime management
  • Download management with asset caching

Get involved

Contributions like ideas, comments, critique, bug reports, pull requests are highly appreciated. Feel free to get in contact if you consider using or improving glTFast.

Supporters

Unity Technologies

Thanks to Embibe for sponsoring the development of skin support! ❤️

License

Copyright (c) 2020 Andreas Atteneder, All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use files in this repository except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Trademarks

Unity is a registered trademark of Unity Technologies.

Khronos® is a registered trademark and glTF™ is a trademark of The Khronos Group Inc.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].