My point is that lighting in world space will be different to lighting in view space.
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translation, then we have that:
length(vertex*view) != length(vertex)
which is true
In other words, the transformation distorts the lighting
So I wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
Show differencesHistory of post edits
#4infact
Posted 31 May 2012 - 10:26 AM
My point is that lighting in world space will be different to lighting in view space.
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translation, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So I wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translation, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So I wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
#3infact
Posted 31 May 2012 - 09:41 AM
My point is that lighting in world space will be different to lighting in view space.
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translation, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So i wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translation, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So i wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
#2infact
Posted 31 May 2012 - 09:41 AM
My point is that lighting in world space will be different to lighting in view space.
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translate, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So i wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translate, then we have that:
length(vertex*view) != distance(vertex)
which is true
In other words, the transformation distorts the lighting
So i wonder why opengl does lighting in view space and not in world space.
Is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
#1infact
Posted 31 May 2012 - 09:40 AM
My point is that lighting in world space will be different to lighting in view space.
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translate, then we have that:
length(vertex*view) != distance(vertex)
which is true
in other words, the transformation distorts the lighting
so i wonder why opengl does lighting in view space and not in world space.
is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?
distance(vertex*view - light) != distance(vertex - light*view^-1)
this is clear if we let the light origin be 0,0,0, and consider a matrix with no translate, then we have that:
length(vertex*view) != distance(vertex)
which is true
in other words, the transformation distorts the lighting
so i wonder why opengl does lighting in view space and not in world space.
is it for the the sake of having a single modelview matrix instead of separate model and view matrices in the pipeline?