Mirror bottom in Z-

Have some feature requests, feedback, cool stuff to share, or want to know where FreeCAD is going? This is the place.
Forum rules
Be nice to others! Read the FreeCAD code of conduct!
kwahoo
Posts: 275
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Mirror bottom in Z-

Postby kwahoo » Sat Jan 25, 2014 10:01 pm

jriegel wrote: But its probably really pretty useless....
Dozen games in Emacs are useless too, but someone implemented them;)
User avatar
NormandC
Posts: 18534
Joined: Sat Feb 06, 2010 9:52 pm
Location: Québec, Canada

Re: Mirror bottom in Z-

Postby NormandC » Sat Jan 25, 2014 10:38 pm

That's display gravy. Evidently it's cool to look at, but it must be CPU/GPU intensive, would it? Would it be possible to not compute when the user translates or rotates the view? Then it would not impact display performance too much.


Is it useless? Quite! :D But pro CAD software already do it: NX as is shown in the screen capture, and SolidWorks as well. Possibly the late versions of Solid Edge. And it's real-time rendering too.

Google images made on SolidWorks, it seems many people hardly go to the trouble of doing real renders when a simple screen capture looks that good. (I'm not saying it looks as good as renders, but that the image quality is sufficient for most people)

Image
But something as good looking may require some special hardware and drivers.
SolidSmack wrote:The image below is a screenshot of a data set from NVIDIA shown in SolidWorks with RealView graphics on. RealView graphics utilize the GPU to render the semi-realistic graphics on the SolidWorks screen. The other window is the PhotoView 360 Preview window. PhotoView 360 is 100% CPU-based rendering and doesn’t task the GPU, so for PV360 rendering your benefits come along with more multi-threaded CPU cores. The SolidWorks models are all CPU as well. The GPU does little for processing the model, so more GPU’s won’t gain you any added performance. (link)
It's a matter of perception. Some new users coming to FreeCAD may find the utilitarian way it displays parts bland and think it's primitive. Their opinion of FreeCAD may very well be influenced by such an insignificant detail.

So I think it would still be fun to have it, if it's not too much trouble to implement.

Of course that would have to be an option that you can disable in the display preferences.

Even if this seems superficial (and it is), it would help make FreeCAD look like a "modern" CAD software. ;)
User avatar
quick61
Posts: 3803
Joined: Sat Aug 24, 2013 2:49 am
Location: u.S.A.

Re: Mirror bottom in Z-

Postby quick61 » Sun Jan 26, 2014 12:28 am

Like Normand says, " it would help make FreeCAD look like a "modern" CAD software. ;)" and thinking more on my last post, maybe have it on a toggle with the other view items, so it could be turned on for a screenshot then turned off again for work. If it's already in coin and easy/not hard to implement, go for it. Often it's these little things that can make a big difference to the masses.

Besides, it would be cool. :ugeek:

Mark
This post made with 0.0% Micro$oft products - GOT LINUX?
kwahoo
Posts: 275
Joined: Fri Nov 29, 2013 3:09 pm
Contact:

Re: Mirror bottom in Z-

Postby kwahoo » Sun Jan 26, 2014 10:31 am

normandc wrote:That's display gravy. Evidently it's cool to look at, but it must be CPU/GPU intensive, would it? Would it be possible to not compute when the user translates or rotates the view? Then it would not impact display performance too much.


Is it useless? Quite! :D But pro CAD software already do it: NX as is shown in the screen capture, and SolidWorks as well. Possibly the late versions of Solid Edge. And it's real-time rendering too.

Google images made on SolidWorks, it seems many people hardly go to the trouble of doing real renders when a simple screen capture looks that good. (I'm not saying it looks as good as renders, but that the image quality is sufficient for most people)
(...)
But something as good looking may require some special hardware and drivers.
Disclamer: I'm not graphics expert.

Time to bust some myths. Such reflection/mirror would be more GPU, but no CPU intensive if written in the modern OpenGL. Shaders (small GPU programs) should do all transformation and blending work us. And our GPUs have TFLOPs of computing power. WebGL real-time example.

Specialised hardware/software is not necessary. Computer games have been doing similar things with high framerate since late nineties. 1998 Unreal screenshot below.

Image

Your big image shows two other things:
- materials, all faces have defined properties: reflectivity, transparency etc. Needs some library work, define other shaders for steel, other for wood or glass.
- shadow made by shadow mapping technique http://en.wikipedia.org/wiki/Shadow_mapping

Nothing very taxing hardware or new.

Your small image shows some CPU-based rendering, maybe raytracing. It looks cool, but it is slow and wastes CPU cycles. Finally, we have a PovRay export already.
If we want realistic rendering tool we should go towards GPU-powered raytracers as SmallLuxGPU (unfortunately GPL). A video presentation. A Real-time example Yorik, as Blender artist, should know more.
User avatar
yorik
Site Admin
Posts: 11845
Joined: Tue Feb 17, 2009 9:16 pm
Location: São Paulo, Brazil
Contact:

Re: Mirror bottom in Z-

Postby yorik » Sun Jan 26, 2014 8:16 pm

Actually I am more interested in the nice-looking aspect of the materials in the NX screenshots... (My architect soul also says "shadow is more important than mirror"). But it looks easy to implement, and it would look cool in the rotating demo mode :)

About the good-looking materials, coin has much more power than we currently use, one of these days we could also have a closer look at that... Maybe after we have a better material module, so we can play with more values like diffuse/ambient and specularity.
User avatar
quick61
Posts: 3803
Joined: Sat Aug 24, 2013 2:49 am
Location: u.S.A.

Re: Mirror bottom in Z-

Postby quick61 » Fri Jan 31, 2014 4:53 pm

Was this line of thought, taking advantage of, and implementing features in coin going anywhere? Or was this just wishful thinking? I was reading up a bit on what coin can do (info is rather scattered) and it sure seems capable. I figure this would not be of any real high priority, but this thread just kind of stopped mid conversion. Left me wondering is all. ;)

Mark
This post made with 0.0% Micro$oft products - GOT LINUX?
mrlukeparry
Posts: 655
Joined: Fri Jul 22, 2011 8:37 pm
Contact:

Re: Mirror bottom in Z-

Postby mrlukeparry » Fri Jan 31, 2014 6:49 pm

I don't think is really a good idea unless shaders are used. If time is spent on this, there are other graphical areas that need improvement, such as using Geometry Shaders or representing edges.

I agree with Yorik, improving the appearance of materials would be far more beneficial. Shadow support for architecture would be valuable for daylight modelling.
User avatar
quick61
Posts: 3803
Joined: Sat Aug 24, 2013 2:49 am
Location: u.S.A.

Re: Mirror bottom in Z-

Postby quick61 » Fri Jan 31, 2014 7:14 pm

Yes Luke, I was referring to enabling more of coins features in general, Materials and shading are defiantly a biggie, and the way Coin seems to work (from what I have been able to read), those tasks are put on the GPU, which modern video cards will handle with ease, so why not (eventually) work all of it in. Just a shame to let all that capability go untapped. I was just wondering if any of this was going somewhere or if it was set aside.

Mark
This post made with 0.0% Micro$oft products - GOT LINUX?
User avatar
cblt2l
Posts: 155
Joined: Sat May 15, 2010 3:59 am

Re: Mirror bottom in Z-

Postby cblt2l » Fri Jan 31, 2014 10:49 pm

normandc wrote:That's display gravy. Evidently it's cool to look at, but it must be CPU/GPU intensive, would it? Would it be possible to not compute when the user translates or rotates the view? Then it would not impact display performance too much.
I keep the RealView graphics off 99% of the time. Its annoying to look at and it definitely adds overhead in large assemblies.
normandc wrote:It's a matter of perception. Some new users coming to FreeCAD may find the utilitarian way it displays parts bland and think it's primitive. Their opinion of FreeCAD may very well be influenced by such an insignificant detail.
I agree, it's useless to me but it seems like everyone else really likes it. Plus its nice for screenshots if you don't feel like doing a complete rendering.
normandc wrote:Of course that would have to be an option that you can disable in the display preferences.
What about adding it as another option to the 'Draw Style' menu on the view panel?