/usr/include/opencollada/COLLADAFramework/COLLADAFWShaderPhong.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 74 75 76 77 78 79 80 81 82 83 | /*
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_SHADERPHONG_H__
#define __COLLADAFW_SHADERPHONG_H__
#include "COLLADAFWPrerequisites.h"
#include "COLLADAFWShaderLambert.h"
namespace COLLADAFW
{
/**
Produces a specularly shaded surface where the specular reflection is shaded according the
Phong BRDF approximation.
Used inside a <profile_COMMON> effect, declares a fixed-function pipeline that produces a
specularly shaded surface that reflects ambient, diffuse, and specular reflection, where the
specular reflection is shaded according the Phong BRDF approximation.
The <phong> shader uses the common Phong shading equation, that is:
color = <emission> + <ambient> * al + <diffuse> * max ( N * L, 0 ) + <specular> * max ( R * I, 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><color> values in
the <visual_scene>.
� N � Normal vector
� L � Light vector
� I � Eye vector
� R � Perfect reflection vector (reflect (L around N))
*/
class ShaderPhong : public ShaderLambert
{
private:
/** Declares the color of light specularly reflected from the surface of this object. */
ColorOrTexture mSpecular;
/** Declares the specularity or roughness of the specular reflection lobe. */
FloatOrParam mShininess;
public:
/** Constructor. */
ShaderPhong() {};
/** Destructor. */
virtual ~ShaderPhong() {};
/** Declares the color of light specularly reflected from the surface of this object. */
const ColorOrTexture getSpecular () const { return mSpecular; }
/** Declares the color of light specularly reflected from the surface of this object. */
void setSpecular ( const ColorOrTexture Specular ) { mSpecular = Specular; }
/** Declares the specularity or roughness of the specular reflection lobe. */
const FloatOrParam getShininess () const { return mShininess; }
/** Declares the specularity or roughness of the specular reflection lobe. */
void setShininess ( const FloatOrParam Shininess ) { mShininess = Shininess; }
private:
/** Disable default copy ctor. */
ShaderPhong( const ShaderPhong& pre );
/** Disable default assignment operator. */
const ShaderPhong& operator= ( const ShaderPhong& pre );
};
} // namespace COLLADAFW
#endif // __COLLADAFW_SHADERPHONG_H__
|