![]() |
Not logged in, Join Here! or Log In Below:
|
|
Greetings all, |
|
A specular reflection is a "perfect" reflection. That is, it's reflected through the normal. "Regular" reflection... I guess you mean diffuse reflection? This is basically fake, it's an invention. It's used since real surfaces never are completely smooth. There are always small irregularities. |
|
Thanks for the info; I think I misunderstood the terms. From what you say, I understand that the term "specular reflection" is used to describe a usual reflection. |
|
Reflection: Used to describle a perfect reflection. True. Diffuse Reflection: Used to describe a cone of random reflections. True, depends on how you implement it of course. Specular Reflection: Used to describe a perfect reflection which ONLY reflects the light emitting geometry. True to some degree if you replace the word "reflection" with "lighting". I think you should read Jacco Bikker's excellent tutorials on the subject, in particular: http://www.flipcode.com/articles/article_raytrace02.shtml |
|
Thanks for the fast relpies. I've already read all of Jacco Bikker's ray-tracing article series. Those articles are actually what inspired me to try and write my own ray-tracer. He has done a good job; very easy to understand the concepts from his tutorials. |
|
Since you can't make shiny objects using only diffuse lighting :) |
|
specular reflection is just the lightsources reflecting on your objects. if you have correct (glossy) reflections of the whole scene, and hdr calculations everywhere, specular reflections would get created by the ordinary reflection calculation. |
|
Thanks again for the fast replies, everyone. |
|
No, it's not useless. You can't get speculars by calculating diffuse reflections. Specular reflections are viewer-dependent, where diffuse aren't. |
|
tokjunior wrote:
Specular reflections are viewer-dependent, where diffuse aren't. Eh? Since diffuse reflections are a type of reflection, won't they be view-dependant also? Correct me if I still haven't got the terms right, but I think you are referring to diffuse lighting instead of diffuse reflection. |
|
speculars are theoretically useless, but as i said, they are a very quick hack to solve an else... _very_expensive_ task. that is, doing imperfect, glossy reflections, with the whole scene, with 100's rays per .. ray, all in hdr.. |
|
Yes, that's true. But maybe I'll stick with speculars because I want my ray-tracer to be real-time (yeah I know it's pretty tough, but I'd like to try anyway (: ) |
|
DIFFUSE reflection is a REFLECTION but is NOT VIEWDEPENDENT because light is reflected evenly in all directions, independent of the incoming direction. |
|
Lotuspec wrote:
DIFFUSE reflection is a REFLECTION but is NOT VIEWDEPENDENT because light is reflected evenly in all directions, independent of the incoming direction.
SPECULAR (or glossy or whatever you like to call it) reflections on the other hand are VIEWDEPENDENT i.e. the outgoing (=reflected) direction of the light depends on the incomming direction and is in most specular reflection models concentrated around the perfect specular reflection.
So basicly viewdependence and reflection are NOT directly related in any manner. I think that different people interpret the term "diffuse reflection" in different ways. See Jacco Bikker's interpretation (under the heading "Diffuse Reflections") here: http://www.flipcode.com/articles/article_raytrace05.shtml I understood the concept you tried to convey though, but I think the term for that concept is commonly known as diffuse shading? |
|
You may want to have a look at this: |
|
Or diffuse lighting. Or diffuse reflection. |
|
It's no problem getting it to be realtime. |
|
There are several different types of reflection. |
|
Thank to all for the good information. |
|
Thanks for the link, good information. Man, I'm increasingly wishing I had taken a physics course for my degree instead of a computer one. :) |
|
Yes, I see your point. The next time I see an article with any of these terms, I can't skip the parts which explain the theory behind these terms, because the author might be using them to refer to something else! |
|
It's no problem getting it to be realtime. But I don't know assembly / advanced maths and I plan on writing it in pure C++, so I guess realtime might be a bit far-fetched for me. I mean, are we talking about reflecting objects or light here? I was referring to reflecting light from everything. That is, light from light-emitting objects as well as light from light-reflecting/refracting objects. And don't go for a realtime raytracer before you've got a non-realtime one up and going with the effects you're going for. You need to understand it, and understand it well, before you can make it good realtime. I don't think I can plan on too many effects unless I'm going for a NON-REALTIME ONLY ray-tracer. :D |
|
Reflecting light from everything, that would mean Global Illumination, which just isn't done realtime. And that includes Jacco's raytracer. |
|
Jacco refers to diffuse reflection when he's talking about diffuse reflection, and speculars when he talks about glossy reflection. |
|
Oh yeah, and asm isn't needed unless you want to start using SIMD (sse/sse2/sse3/3dnow and so on). |
|
Thanks for pointing that out. |
|
But now I'm again in doubt. |
|
I fail to see how specular reflection would be "useless theoretically" ? What do you mean by useless ? I can construct a BRDF that models Phong's specular reflection model _perfectly_ using a delta function. This BRDF is completely faithful in that it satisfies the Helmholtz reciprocity law as well as being energy preserving. |
|
TheDraguun wrote: |
|
In that screenshot, what he calls "diffuse reflection" is really "glossy reflection". It goes to show that you shouldn't try to take the terms used too literally. |
|
|


