⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lighting.h

📁 《光线引擎演示程序》执行程序+源代码,《光线引擎演示程序》执行程序+源代码
💻 H
字号:
/*==========================================================================;
 *
 *  光线游戏引擎(Light Game Engine)
 *
 *  版权所有 (C) 2005-2007 康 旭。 保留所有权利。
 *  Copyright (C) KangXu.  All Rights Reserved.
 *
 *  文件:   lighting.h
 *  内容:   光照函数
 *
 ****************************************************************************/


/*! \file lighting.h * 光照函数. * 此文件是光照函数头文件. */
/* 光源的颜色 */
#define LIGHT_AMBIENT    1259   /* 环境光     */
#define LIGHT_DIFFUSE    1260   /* 漫反射     */
#define LIGHT_SPECULAR   1261   /* 镜面反射光 */

/* 光源的衰减因子 */
#define LIGHT_CONSTANT   1262   /* 恒定衰减因子 */
#define LIGHT_LINEAR     1263   /* 线性衰减因子 */
#define LIGHT_QUADRATIC  1264   /* 二次衰减因子 */


/*! \class LightLight * \brief 光照类 * *  本类负责动态光源的管理。 *  每个 LightLight 实例都必须通过 LightEngine 类的 NewLight 方法分配,分配实例的同时,也就创建了一个动态光源。  */

class LightLight
{
	public:

	/*! \fn int SetPosition( float x, float y, float z, float w ) = 0	 *  \brief 设置光源的位置	 *	 *  设置光源的位置。	 *	 *  \param float x 光源位置的 x 坐标	 *	 *  \param float y 光源位置的 y 坐标	 *	 *  \param float z 光源位置的 z 坐标	 *	 *  \param float w 光源位置的 w 坐标	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int SetPosition( float x, float y, float z, float w ) = 0;

	/*! \fn int SetColor( int name, float red, float green, float blue, float alpha ) = 0	 *  \brief 设置光源的颜色值	 *	 *  设置光源的颜色值	 *	 *  \param int name  要设置的光源颜色。可以选择下面的其中一个值:
	 *                   \li LIGHT_AMBIENT   环境光
	 *                   \li LIGHT_DIFFUSE   漫反射
	 *                   \li LIGHT_SPECULAR  镜面反射光	 *	 *  \param float red 光源颜色的红色成分	 *	 *  \param float green 光源颜色的绿色成分	 *	 *  \param float blue 光源颜色的蓝色成分	 *	 *  \param float alpha 光源颜色的 Alpha 色成分	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int SetColor( int name, float red, float green, float blue, float alpha ) = 0;

	/*! \fn int SetSpotlight( float x, float y, float z, float exponent, float angle ) = 0	 *  \brief 设置光源的聚光参数	 *	 *  设置光源的聚光参数	 *	 *  \param float x  聚光方向的 x 坐标	 *	 *  \param float y 聚光方向的 y 坐标	 *	 *  \param float z 聚光方向的 z 坐标	 *	 *  \param float exponent 光源的聚光指数	 *	 *  \param float angle 光源的聚光角度	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int SetSpotlight( float x, float y, float z, float exponent, float angle ) = 0;

	/*! \fn int SetAttenuation( int name, float attenuation ) = 0	 *  \brief 设置光源的衰减因子	 *	 *  设置光源的衰减因子	 *	 *  \param int name 要设置的衰减因子。可以选择下面的其中一个值:
	 *                  \li LIGHT_CONSTANT   恒定衰减因子
	 *                  \li LIGHT_LINEAR     线性衰减因子
	 *                  \li LIGHT_QUADRATIC  二次衰减因子	 *	 *  \param float attenuation 衰减因子的值	 *	 	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int SetAttenuation( int name, float attenuation ) = 0;

	/*! \fn void Enable() = 0	 *  \brief 打开灯光	 *	 *  打开灯光	 *	 *  \param 无	 *	 	 *  \return 无	 *	 *  \see 
	 */
	virtual void Enable() = 0;

	/*! \fn void Disable() = 0	 *  \brief 关闭灯光	 *	 *  关闭灯光	 *	 *  \param 无	 *	 	 *  \return 无	 *	 *  \see 
	 */
	virtual void Disable() = 0;

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -