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

Can someone render this Architectural model with this WB ? #38

Closed
luzpaz opened this issue Apr 8, 2020 · 13 comments
Closed

Can someone render this Architectural model with this WB ? #38

luzpaz opened this issue Apr 8, 2020 · 13 comments

Comments

@luzpaz
Copy link
Contributor

luzpaz commented Apr 8, 2020

There is an FC forum thread called [Architecture Masterpiece] Church of The Light. It would really benefit from an actual rendering the image to show how light illuminates the space of the structure. Is there someone interested in making this happen?

@luzpaz
Copy link
Contributor Author

luzpaz commented Apr 8, 2020

image

image

image

@luzpaz
Copy link
Contributor Author

luzpaz commented Apr 8, 2020

@howetuft what do you think? Care to take a swipe at this?

@howetuft
Copy link
Collaborator

howetuft commented Apr 8, 2020

@luzpaz Yes, with pleasure! Not sure our young Render module is mature enough to meet all expectations, but at least it is an interesting challenge, and also a good use case to feed our roadmap!

@howetuft
Copy link
Collaborator

howetuft commented Apr 11, 2020

@luzpaz (and I may also include @yorikvanhavre into the discussion, if he's OK)

Hi! After several attempts, my conclusion is that our Render module is not yet featured-enough for this task. We lack some key lighting functionalities (sun light for instance, but Hosek-Wilkie skylight and area lights could be of some help as well), some ergonomics (ability to handle a large FreeCAD project into Render WB) and we should also go forward into material handling. So we cannot yet compare with what one can do by exporting the model into Blender and doing all the lighting and the material stuff into that software.

Anyway, this is really a very, very interesting use case. Therefore, I take it as a challenge for our future developments, and I am going to make some additions to the roadmap (in README.md) based on that...

@howetuft
Copy link
Collaborator

Hi everybody (if there is still someone listening there...;-)

I made some enhancements in FreeCAD-render, and I was able to get a first rendering of the above scene. Among the enhancements:

  • sunsky light, allowing to control sun orientation (and to have it in the axis of the cross, in the present case)
  • features to simplify large projects rendering preparation (one can now import groups of parts into a rendering project a single click, and views naming has been apdated as well)

There is still much to do, especially about material and rendering fine tuning (denoising...), but at least there are some visible improvements that I can show. Here are the renderings:

Appleseed:
appleseed

Cycles:
cycles

Lux (a bit burnt and quite noisy):
Lux

@justnope I was notified by mail that you wrote a comment on this thread a few days ago, but I couldn't find your post here, nor answer you... If it is still relevant, could you please post it again?

@luzpaz
Copy link
Contributor Author

luzpaz commented Jun 1, 2020

@howetuft fantastic progress, thank you for presenting it 😄

@ghost
Copy link

ghost commented Jun 1, 2020

@howetuft I'm a bit angry at you. Well, not you as a person but at you as a developer.

When you started this, I already made PRs to add materials, to fix cameras, etc... for several rendering engines. I included fixes to render windows, walls and multi-materials...

This was indeed experimental code, but it worked. You completely tossed away the existing PRs. If you would've just asked what's next, I would've helped you and talked about the current problems rendering a large scene and what's missing. If you've discussed your plans, I would've refactored my code to go from experimental to production.

@howetuft
Copy link
Collaborator

howetuft commented Jun 1, 2020

@justnope Sorry, I don't understand: what PRs are you talking about?

@ghost
Copy link

ghost commented Jun 1, 2020

#17

Edit: don't get me wrong. I'm extremely grateful you are taking it over. At least now there's progress :) (I know yorik is busy with more important things... I understand that, but since you're active and responsive I think I might talk to you directly about implementations and whatever?)

@howetuft
Copy link
Collaborator

howetuft commented Jun 1, 2020

OK, thank you for your precisions, because I was actually getting you wrong (not understanding why I should have disturbed anybody about closed unmerged PRs and as I was the only active contributor on the repo for the last 6 months...).
Anyway, yes, any help would be appreciated, there are many things to do in materials field especially. Maybe we can open a thread on FreeCAD forum for that (I have some ideas to share too)...

@luzpaz
Copy link
Contributor Author

luzpaz commented Jun 5, 2020

Please add the link tot the discussion so we can track it from this ticket

@ghost
Copy link

ghost commented Jun 5, 2020

What do you mean exactly with "there are many things to do in the materials field"?

Maybe I took the easy way and stored the material properties in the material card in freecad using custom properties. When I needed to render, I wrote an extra serializer for material type X and got the info from the material card.

I've spend most of my time upgrading the serializers to the latest version of the renderers used. Debugging why some models didn't render, adding special cases for multi-materials, clones, etc... Adding code to serialize object vertex data because some renderers needed that...

I don't deny there's some work to implement materials, but it's not coding work. It's discussing where to store the data and how.

@howetuft
Copy link
Collaborator

howetuft commented Jun 6, 2020

I agree that the main point is: where and how should the rendering material information be stored, and made available to the user.

In my opinion, the key point is FreeCAD is no rendering software, and rendering is just an optional step in objects design.
So we should make rendering material management as easy as possible for user, in a few clicks. Here are some thoughts about it:
First, rendering material should be agnostic about renderer (we cannot require user to be expert in each renderer). Meaning that, in FreeCAD, the user should be able to tell: "this object is glass", optionally tweak a few renderer-independent parameters (e.g., for glass: color, IOR etc.) and then, whatever renderer is used, the object would be rendered as glass. Moreover, the material parameters should have some default values (e.g. for glass, IOR = 1.5), to make on-the-shelf use possible.
So, IMHO, we should provide user with a kind of library of standard rendering materials (glass, matte, glossy coating etc.), a way to apply those materials to objects, and a way to (optionnally) tweak the applied material - all of that in the most friendly and general manner.

If you think your last year code was nearly ready for that, maybe you could rebase, lint/refactor (PEP8) and make a new proposition?
I would suggest focusing first on 2 materials (for instance glass and matte) and 2 renderers, for a proof of concept: are you OK with that?

@ghost ghost mentioned this issue Jun 7, 2020
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

No branches or pull requests

2 participants