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

Offscreen meshes rendering using embree #1652

Merged
merged 3 commits into from
Dec 8, 2020
Merged

Conversation

vfonov
Copy link
Contributor

@vfonov vfonov commented Nov 19, 2020

Added simple raytracing renderer which allows off-screen rendering of meshes
Using embree (already included in libigl). Addresses #1458, #601
Does not depend on OpenGL.
Tutorial example renders fertility example with average gaussian curvature field, in 0.1 sec.
Based on include/igl/embree/EmbreeIntersector.h and examples from embree tutorials.
fertility_curvature

Check all that apply (change to [x])

  • All changes meet libigl style-guidelines.
  • Adds new .cpp file.
  • Adds corresponding unit test.
  • This is a minor change.

@vfonov vfonov force-pushed the embree_render branch 5 times, most recently from a504d28 to 8ac538d Compare November 20, 2020 20:03
… meshes.

Using embree (already included in libigl). Addresses libigl#1458, libigl#601
Does not depend on OpenGL.
Tutorial example renders `fertility` example with average gaussian curvature field, in 0.1 sec.
Copy link
Collaborator

@jdumas jdumas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi. This is nice, thanks!

Is there a way to factor out the shared code between EmbreeIntersector and EmbreeRenderer, maybe through a common base class for example?

include/igl/embree/EmbreeRenderer.h Outdated Show resolved Hide resolved
include/igl/embree/EmbreeRenderer.cpp Outdated Show resolved Hide resolved
include/igl/embree/EmbreeRenderer.cpp Outdated Show resolved Hide resolved
include/igl/embree/EmbreeRenderer.cpp Outdated Show resolved Hide resolved
include/igl/embree/EmbreeRenderer.cpp Outdated Show resolved Hide resolved
Copy link
Collaborator

@jdumas jdumas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! But I think there are still some problems with the new EmbreeDevice implementation that you proposed. I've commented on those. Lmk what you think.

include/igl/embree/EmbreeDevice.h Outdated Show resolved Hide resolved
include/igl/embree/EmbreeDevice.cpp Outdated Show resolved Hide resolved
Copy link
Collaborator

@jdumas jdumas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi, sorry about the late review. I think the new singleton class looks good. Too bad we can't use the internal refcounter of the embree device? Anyhow I just have minor comments this time, then we should be good to merge.

include/igl/embree/EmbreeDevice.h Show resolved Hide resolved
include/igl/embree/EmbreeDevice.cpp Outdated Show resolved Hide resolved
include/igl/embree/EmbreeIntersector.h Outdated Show resolved Hide resolved
@jdumas jdumas merged commit c7b5d0b into libigl:master Dec 8, 2020
@jdumas
Copy link
Collaborator

jdumas commented Dec 8, 2020

Merged, thanks! Let me know if you can add a new tutorial entry for the website.

@vfonov vfonov deleted the embree_render branch December 8, 2020 21:30
@vfonov
Copy link
Contributor Author

vfonov commented Dec 8, 2020

I will try ...

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.

2 participants