Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prepare for v0.5 release #43

Merged
merged 55 commits into from
Feb 10, 2019
Merged

Prepare for v0.5 release #43

merged 55 commits into from
Feb 10, 2019

Conversation

scurest
Copy link
Collaborator

@scurest scurest commented Feb 10, 2019

Preparing for a 0.5 release. Changes

  • Blender 2.8 support is now supported in the master branch (working as of the January 31 beta). Here's the BoomBox in the new material view

    boombox

  • We are now namespaced under "KSons' glTF converter"/io_scene_gltf_ksons/import_scene.gltf_ksons() to avoid conflict with glTF-Blender-IO which kind of took the import_scene.gltf() name lol

  • Further performance improvements

    Sample v0.4 Current
    VC 5.0s 2.3s
    MetalRoughSpheres 4.6s 2.7s
    Sponza 3.3s 1.6s

    Things are a bit slower in Blender 2.8 (eg. 3.0s for MetalRoughSpheres) or that might be the difference in the embedded vs system Python on my machine.

  • More import options

    user-options

  • Material animations work in the new material view in 2.8! Here's some test files:
    MaterialAnimationExamples.zip

    out2 out3

    Unfortunately the EXT_property_animation extension was abandoned upstream :(

  • Materials are now compatible with glTF-Blender-IO's node tree again (we don't use the old exporter's groups anymore). This fixes the dull colors we've had for a while. Multiple vertex colors affect the material instead of only COLOR_0.

  • Various bug fixes.

This should also close all open issues.

Will see if this CI passes... edit: Hallelujah!

glTF-Blender-IO kind of took over import_scene.gltf and now we
can't be enabled at the same time as them (whoever is enabled
last "wins").
add_in_primitive was accidentally overwriting the material of all
the faces, not just the faces it added.
Dull colors were caused by the color being mixed with the vertex
color being off-white instead of pure-white.

The Principled Node was used for the Metal Roughness group, which
cleaned it up a lot. Occlusion is no longer used, but materials
look better now so don't sweat it.

Non-color images had the right color space set now too which
hopefully also helps the color a bit.
It turns out to be better to create all the vertices/edges/tris
ourselves than to use from_pydata. This shaves off more than a
second from MetalRoughnessSpheres. The code is also simplified
by avoiding the temp mesh song and dance, and I added some
docs too.
Create a class for vnodes; insert an imaginary root to make
the vforest a vtree, which simplifies tranversal; refactor some
of the graph surgery functions; split scene handling into its
own file.
The trick here was just as much using [::2] and [1::2] to set
array values in bulk as it was using foreach_set to set keyframe
points in bulk.
Also mark light support as stabilized
Heterogeneous scalings are handled by putting the model in a non-
rest pose in Blender that matches the rest pose in the glTF. Models
without heterogeneous scalings should still match the rest pose.
Also constrained skinned meshes to their armatures so it shouldn't
matter where in the tree they are instantiated.
There are problems with splitting meshes with constraints though.
The new download button will hopefully solve the problem of people
trying to use the Github source ZIP instead of the add-on ZIP.
The new official exporter no longer uses a glTF material group.
Begin converting back to making all our own nodes (but there are
a few utility groups we can keep). At least we can re-use the
Block stuff for layout...
This now works in Blender 2.8
The 1-x factor on (a,b) instead of an x factor on (b,a) is to
match glTF-Blender-IO but I think they're the same.
We also prepare a little for getting material property animations
working again.
The Value class is also intended to record the path to the place in
the tree where the value was inserted for animations
Also remove a bunch of now-unused groups and the framify stuff.
Double-sidedness is now supported. Also fixed bug in Blender 2.8.
ie. it is no longer (necessarily) IMAGINARY. This makes it a little
easier to import a bunch of models into a scene since they get
organized under their original file now.
Pending selection of the right implementation. I think there's
a new Principled node we could use...
Leaving the ImportGLTF for the Blender interface only.
Remove the manual selection of bone direction, which is complicated
and nobody uses. Move the calculation of how to interchange scales
and rotations to an explicit helper function. And try to pick better
targets to rotate towards. Also, bugfixes to the AXIS_TO_PLUS_Y
map, which had some bad values.
This is obviously non-standard but it doesn't hurt to look there.
ie. to deal with

    Block -> A ->
          -> B ->

which we need for metal/roughness, spec/glossiness, and clamping.

Also fixed a typo that made the roughnessFactor ignored.
And also center the whole shader node tree when we're done creating
it.
Move material.py into __init__.py and frontload the actual material
creation. Some docs were added to the MaterialCreator.
Using a node group that matches what glTF-Blender-IO does for the
moment.
Also JPEG-ify the sample renders for better bandwidth use.
@scurest scurest merged commit cf24beb into ksons:master Feb 10, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant