/usr/include/opencollada/COLLADAFramework/COLLADAFWShaderBlinn.h is in opencollada-dev 0.1.0~20140703.ddf8f47+dfsg1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 | /*
Copyright (c) 2008-2009 NetAllied Systems GmbH
This file is part of COLLADAFramework.
Licensed under the MIT Open Source License,
for details please see LICENSE file or the website
http://www.opensource.org/licenses/mit-license.php
*/
#ifndef __COLLADAFW_SHADERBLINN_H__
#define __COLLADAFW_SHADERBLINN_H__
#include "COLLADAFWPrerequisites.h"
#include "COLLADAFWShaderConstantFX.h"
namespace COLLADAFW
{
/**
Produces a specularly shaded surface with a Blinn BRDF approximation.
Used inside a <profile_COMMON> effect, <blinn> declares a fixed-function pipeline that
produces a shaded surface according to the Blinn-Torrance-Sparrow lighting model or a close
approximation. This equation is complex and detailed via the ACM, so it is not detailed here.
Refer to "Models of Light Reflection for Computer Synthesized Pictures," SIGGRAPH 77, pp 192-198
(http://portal.acm.org/citation.cfm?id=563893).
To maximize application compatibility, it is suggested that developers use the
Blinn-Torrance-Sparrow for <shininess> range of 0 to 1. For <shininess> greater than 1.0, the
COLLADA author was probably using an application that followed the Blinn-Phong lighting model,
so it is recommended to support both Blinn equations according to whichever range the shininess
resides in.
The Blinn-Phong equation is:
color = <emission> + <ambient> * al + <diffuse> * max ( N * L, 0 ) + <specular> * max ( H * N, 0 )^<shininess>
where:
� al � A constant amount of ambient light contribution coming from the scene. In the COMMON
profile, this is the sum of all the <light><technique_common><ambient> values in the
<visual_scene>.
� N � Normal vector (normalized)
� L � Light vector (normalized)
� I � Eye vector (normalized)
� H � Half-angle vector,calculated as halfway between the unit Eye and Light vectors, using the
equation H= normalize(I+L)
*/
class ShaderBlinn : public ShaderPhong
{
private:
public:
/** Constructor. */
ShaderBlinn() {};
/** Destructor. */
virtual ~ShaderBlinn() {};
private:
/** Disable default copy ctor. */
ShaderBlinn( const ShaderBlinn& pre );
/** Disable default assignment operator. */
const ShaderBlinn& operator= ( const ShaderBlinn& pre );
};
} // namespace COLLADAFW
#endif // __COLLADAFW_SHADERBLINN_H__
|