teamwisp / wispformaya Goto Github PK
View Code? Open in Web Editor NEWBringing real-time ray-tracing to the Maya viewport using the Wisp real-time ray-tracing library.
License: Apache License 2.0
Bringing real-time ray-tracing to the Maya viewport using the Wisp real-time ray-tracing library.
License: Apache License 2.0
Describe the bug
Lights are not updating. color does not change
To Reproduce
Steps to reproduce the behavior:
Description
The material parser works fine but needs to be re-worked a lot. During development, I came across some new features from the Maya API that might make the system faster and easier to maintain.
A document about the current system and improvements for it, will be linked within the span of 2 weeks from now.
https://i.imgur.com/Ax06oAg.png
Here you can see that the lines are visible when they shouldn't (especially the top corner)
Make a class or structure to easily spawn a popup in Maya. This will be useful to make the user be aware of unsupported and/or unstable features.
For example, when the user is running on the Fallback layer, we're pretty sure that it will crash. So, we'll pop up a message that the hybrid rendering feature is not supported on their machine.
Describe the bug
When the plug-in imports a model and a texture path that goes to a non-existing texture, the plug-in crashes saying it's can't find the texture.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The plug-in just shouldn't load a texture and fall back on a default value.
System
It would be nice to have support for every Arnold shader available. It should be fairly trivial to add this to Wisp. My estimation is that this should only be a one / two day task at most.
Related to:
Sometimes the mesh loaded into Wisp doesn't update corresponding to the representation in the default Maya viewport. Consistent issue when using bevel on a mesh. It's NOT because the viewport is a frame behind. Moving the camera doesn't fix it.
Solution:
Force a mesh update in the Maya plugin every time a vertex update is detected (or any other useful update). Don't update it every render frame, as you don't want to update all vertices every frame (especially when there are millions of vertices.
The bevel operation works, but only once. So it's impossible to gradually increase/decrease the radius and number of segments of the bevel.
Lock/Hide material attributes in Maya that our engine doesn't use.
Also, consider unlocking these attributes when the plugin unloads (if necessary).
Ghost models appear again.
To Reproduce
Expected behavior
Don't have models anymore
System (please complete the following information):
The Wisp camera should mirror the Maya camera exactly.
Describe the bug
When using the hybrid rendering pipeline, resizing appears to be broken. The screen stays 1280x720 pixels no matter what.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the viewport to resize just like the deferred renderer does.
Describe the bug
There's a few minor memory leaks regarding Qt and general destructors.
To Reproduce
Checkout feature_fix_memleak_2 in WispRenderer.
Launch Maya; attach VS; take capture of allocations.
Load plugin; unload plugin; take capture of allocations.
Expected behavior
Should clean up; but leaks ~30 MB CPU.
Screenshots
System (please complete the following information):
N.A.
Additional context
This thread will include all findings of memory leaks.
While the Wisp renderer can get initialized and destroyed properly via the plug-in, there is an edge case. If the user decides to shut-down Maya without unloading the plug-in, Maya will fail to completely shut-down.
A small window pops up and the editor becomes unresponsive.
Maya does seem to save files just fine, so did not break at all. It is purely the shut-down phase.
Describe the bug
changing emissive weight lags. to have the correct value show another value has to be selected
Related to #130
Expected behavior
when changing value material should update correctly.
The renderer does not output anything, the texture data has to be copied to RAM to access it in Maya.
Just saving it to a file should work for now, as it will confirm that the renderer is, in fact, rendering.
The animation feature in Maya is used very often. This is not supported.
Describe the solution you'd like
Support animations for full Maya accessibility within WispForMaya.
Additional context
Video
Maya test case (Student Version)
Describe the bug
The textures are not properly loaded when importing models and the Wisp renderer is active in a viewport. To properly load these textures, import the model when the Wisp renderer is not active in any viewport (it can already be loaded though).
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The proper textures and proper change callbacks.
To reproduce expected behavior:
Create a wiki to help new users to get started with this repository.
Topics could include, but are not limited to:
Combining multiple meshes leaves ghost models in the Wisp viewport. To understand why this happens it is important to know what goes on behind the scenes. All connections that are made and broken when combining 2 meshes (Cylinder and Torus) are shown here(also shown in screenshots).
From this data, we can see that meshes are being disconnected from the original Mesh-node and connected to a PolyUnite-node in an inputPoly
-array. This seemingly contains all meshes that are combined.
We can conclude from this that meshes are not deleted, but disconnected. Because of this, the mesh parser doesn't get a callback that a mesh is deleted and keeps the meshes in-memory. However, there is a new mesh created which is the combined mesh.
So, a new mesh is created and no meshes are deleted from the scene, leaving a ghost model as all control of the 'old' Mesh-nodes is lost.
No meshes are deleted, just disconnected. This causes Maya to not trigger a 'mesh removed'-callback. The control is lost since 'transform update'-callbacks were bound to the Mesh-node which is not connected anymore. This leaves ghost models.
The two transform nodes should be moving one of the combined meshes and there should be only one copy of the combined meshes left.
Combining meshes - connection results
Connections before combining two meshes
Connections after combining two meshes
Intersecting two meshes - connection results
Connections before intersecting two meshes
Connections after intersecting two meshes
There are a couple of ways to approach this issue. One of them is to just ignore the new mesh and make sure to keep control of the combine meshes individually. Just use the new (combined) mesh its transform as a parent of these two meshes, so the transformations will still be aligned with Maya's default viewport. However, this is pretty much a hack and I'm assuming there are more issues that require fixes like this. So that'll be just a hack, upon hack, upon hack, etc.
The best thing to do is probably reworking the model parser/manager a bit. You basically need it to support grouping as that is what combining does.
Don’t do
void my_namespace::my_nested_namespace::MyClass::MyFunction()
{
}
Instead do:
namespace my_namespace::my_nested_namespace
{
void MyClass::MyFunction()
{
}
} /* my_namespace::my_nested_namespace */
Describe the bug
When moving a child object, the transform does not get updated correctly. I suspect this is because we do not use the parent transform while calculating the object position.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I would expect the model to keep stay lined up with the overlay.
Desktop (please complete the following information):
Describe the bug
When selecting a colour is will not change to that colour unless another colour is picked.less noticeable if the color wheel is used.
Expected behavior
When colour is chosen material should update to that colour.
The Maya plug-in currently loads textures twice by requesting Wisp to load them.
To reduce memory usage, eliminate loading the texture by ourselves and just use the existing Maya texture data directly. This is essentially just a matter of dumping the texture data into a Wisp buffer.
Try panning the camera. The grid and the object will not be aligned anymore.
Describe the bug
The Maya viewport camera uses a different aspect ratio, fov, etc. than the Wisp camera.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
The object should match its Maya wireframe outline perfectly.
Desktop (please complete the following information):
When you remove a object and don't move the camera the object stays in the scene until you move or do some action that refreshes the renderer.
This is an issue with the fact that we don't have proper headless rendering support.
If we won't be able to fix this in the renderer we might want to force a extra update.
Describe the bug
when selecting vertices or faces the model gets reloaded.
Expected behavior
skip the reload if action is not changing the model
Describe the bug
We now check if CStringA == CStringB, which simply compares pointers.
Describe the bug
When the Visual Studio debugger is attached to Maya with the plug-in loaded, exceptions are logged to the debug output window when adding primitives.
To Reproduce
Steps to reproduce the behavior:
0. Attach the Visual Studio debugger
Expected behavior
No exceptions.
System (please complete the following information):
Additional context
NO.
Describe the bug
Wisp crashes when running Wisp on a machine that doesn't support DXR (so only supports the Fallback Layer) and switching framegraph to any framegraph that is using an Acceleration Structure.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Just switch framegraph. No crash should be involved.
Screenshots
Deepest error location
Deepest 'high level' error location
System (please complete the following information):
Additional context
Add any other context about the problem here.
Pretty self explanatory
Describe the bug
Maya crashes when an object is added after removing an object from the scene (scene has to have 0 objects in it).
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Maya should not crash. It should just display the newly created mesh without any issues.
When moving the camera fast you can see that maya's overlay is ahead of the wisp renderer.
Maya 2018 freezes when loading Wisp in an empty scene.
I suspect that this may have something to do with the recent "feature_as" merge into the Wisp rendering framework.
Steps to reproduce:
System specifications:
Properly make use of the frame index in the renderer to avoid lagging behind 3 frames. As of right now, it seems like the Wisp viewport is one frame behind on Maya.
For example, it starts with a black screen even though it already rendered a frame. However, this frame is still in the back buffer and not presented to the screen. As soon as a new update is detected this frame is shown and the next frame is rendered, though, it's not presented yet.
Making use of the frame index properly fixes this issue.
Very noticeable when zooming in and out very fast.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.