rdiankov / openrave

Open Robotics Automation Virtual Environment: An environment for testing, developing, and deploying robotics motion planning algorithms.
http://www.openrave.org
Other
687 stars 340 forks source link

Order independent rendering #1340

Open braineo opened 7 months ago

braineo commented 7 months ago

created the PR on behalf of @Calandiel

Implements order independent rendering in the qtosgrave plugin. This ought to improve visual quality for meshes with low quality geometry and prevent flickering of objects are camera rotates (particularly visible for boxes of similar size placed within each other). This is done by modifying the way blending is handled. The PR also implements a wrapper for different blending algorithms for easier visual comparison between them. PS. It's my first time committing to this repo and while I've tested all features I was aware of, I might have missed some less obvious ones. Since order independent rendering cannot reproduce appearance of depth sorted blending (as the new blending operation is commutative, unlike the default one) there will be slight visual changes to objects regardless of the view angle.

cielavenir commented 7 months ago

I cowardly mention how to run /test myself:

# cd openrave
git remote add Calandiel https://github.com/Calandiel/openrave.git
git fetch Calandiel
git checkout Calandiel/order-independent-rendering
git checkout -B order-independent-rendering
git push origin order-independent-rendering

(oh this works as long as Calandiel doesn't run /test himself)

rdiankov commented 2 months ago

Did you guys test with controller? It doesn't look like it is working...

image

rdiankov commented 1 month ago

Guys, anyone actively working on this?

braineo commented 1 month ago

Guys, anyone actively working on this?

No, it stalled. It is pretty far from expected outcome at the moment.

Calandiel commented 1 month ago

To give more context why it doesn't work - when I wrote it I wasn't aware of all of the features present in the renderer, which relies on osg's material property inheritance. The implementation changes material properties in the scene tree which had side effects and the attempt to fix them broke the oit that was the goal of this PR. It'd need a larger rewrite to function correctly.