`
v5qqcom
  • 浏览: 1287441 次
文章分类
社区版块
存档分类
最新评论

OpenGL函数思考-glLight

阅读更多

OpenGL函数思考-glLight

函数原型:

void glLightf(GLenum light,GLenum pname,GLfloat param)
void glLighti(GLenum light,GLenum pname,GLint param)

参数说明:

  • light:指定光照。光照的数目取决于实现,但至少可以支持8个光照。分别为GL_LIGHT1到GL_LIGHT8
  • pname:指定light的光照参数。可以选择的值有GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION
  • param:指定光源light的设置值指针

函数说明:

该函数设置单个光源的参数值.

  • GL_AMBIENT:指定环境光。
  • GL_DIFFUSE:指定漫射光。
  • GL_SPECULAR:指定镜面光。
  • GL_POSITION:指定光源位置。
  • GL_SPOT_DIRECTION:指定光照方向。
  • GL_SPOT_EXPONENT:指定聚焦光源指数。
  • GL_SPOT_CUTOFF:指定光源的最大散布角。
  • GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION, GL_QUADRATIC_ATTENUATION :指定三个光照衰减因子。

注意:

只对光源进行设置、定位、甚至启用,光源都不会工作。除非我们启用GL_LIGHTING。

LightAmbient: array[0..3] of GLfloat = (0.5, 0.5, 0.5, 1.0); // 环境光参数

LightDiffuse: array[0..3] of GLfloat = (1.0, 1.0, 1.0, 1.0); // 漫射光参数

LightPosition: array[0..3] of GLfloat = (0.0, 0.0, 2.0, 1.0); //光源位置参数


glLightfv(GL_LIGHT1, GL_AMBIENT, @LightAmbient); // 设置环境光

glLightfv(GL_LIGHT1, GL_DIFFUSE, @LightDiffuse); // 设置漫射光

glLightfv(GL_LIGHT1, GL_POSITION,@LightPosition); // 设置光源位置

glEnable(GL_LIGHT1); // 启用一号光源 glEnable(GL_LIGHTING); // 启用光源

分享到:
评论

相关推荐

    OpenGL 库函数汇总(中文分类)CHM

    目前OpenGL的函数主要包含在3个库中 1.GL 函数库 2.GLU 函数库 3.GLUT 函数库 1.GL 库函数 =================================== 颜色编辑 ------------------- glShadeModel 选择平面明暗模式或光滑明暗...

    php-opengl:PHP-OpenGL源代码

    PHP-OpenGL OpenGL库PHP绑定。 该库使您可以舒适地使用PHP语言为桌面创建沉浸式3D应用程序和游戏。 该扩展仅支持现代OpenGL和核心配置文件。 不支持OpenGL兼容性配置文件(其中提供了glRotate,glBegin,glLight等...

    Modern OpenGL Guide.pdf

    本指南将教您使用OpenGL开发... 这意味着您将学会如何自己实现事物,而不是使用glBegin和glLight等不推荐使用的函数。 任何与OpenGL本身不直接相关的事情,例如创建窗口和从文件中加载纹理,都将使用一些小的库来完成。

    基本光照、材质和纹理的应用与实现.rar

    计算机图形学上机实验:基本光照、材质和纹理的应用与实现 1、实验目的: 掌握OpenGL光照、材质和纹理的应用...要求三:利用glLight*定义光源属性。 要求四:理解材质与光源的RGB的关系,掌握简单光照模型的程序实现。

    基于matlab实现的相移光纤光栅(FBG.rar

    基于matlab实现的相移光纤光栅(FBG.rar

    nfcPro-2020071702 id、ic读卡器软件

    配套设备仪器用

    数据更新至2020年分地区电源项目 建设本年施工规模.xls

    数据来源:中国电力统计NJ-2021版

    基于matlab实现烟花寻优算法,自己编的.rar

    基于matlab实现烟花寻优算法,自己编的.rar

    数据更新至2020年分电压等级35千伏及以上 企业自备变压器情况.xls

    数据来源:中国电力统计NJ-2021版

    基于Java的俄罗斯方块游戏的设计与实现

    俄罗斯方块游戏最初是由俄罗斯人阿列克谢·帕基特诺夫在1984年开发的休闲小游戏,曾几何时它创造了无可匹敌的商业价值,影响了一代休闲小游戏的开发与产业链。随着信息时代科技时代的不断发展和变化,计算机已经普及到每一个人的生活中,在繁忙的工作生活中,这一类休闲小游戏给人们带来了些许的放松。 这篇论文详细的描述分析了经典传统的俄罗斯方块实现的基本思路和一些基本游戏规则,在此基础之上,更进一步地开发出俄罗斯方块的创新创意模式,在经典游戏基础上开发出随着分数增高而等级增高难度加大的模式,并且创意性的开发出可操控方块颜色变换的模块,并且增添了游戏声音和音乐模块。本论文对上述功能给出了具体实现流程、详细描述、和一些源代码。 本论文阐述了俄罗斯方块游戏的开发和发展历史、开发此游戏的意义以及开发环境并根据软件工程开发软件和java编写程序的相关知识,对程序的需求分析、概要设计、详细设计与实现、调试运行进行了一系列描述。 此次程序设计是在Microsoft Windows 7系统下,以Java为开发语言,在Eclipse开发平台上进行游戏的设计与实现。

    一个基于ArkTS开源的鸿蒙next版的物流APP源代码

    一个基于ArkTS开源的鸿蒙next版的物流APP源代码

    (更新至2022年)就业基本情况.xls

    数据来源:中国人口与就业统计NJ-2023版

    node-v12.2.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    limbox86pcemulator_241983-3.apk

    limbox86pcemulator_241983-3.apk

    各地区分行业国有单位其他就业人员和平均工资(2022年).xls

    数据来源:中国劳动统计NJ-2023版

    node-v10.18.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    (更新至2022年)平均预期寿命.xls

    数据来源:中国人口与就业统计NJ-2023版

    2023年华数杯不透明制品最优配色方案设计B题全文

    2023年华数杯全国大学生数学建模大赛的大数据B题论文全文,文中框架完整,内容较为详细,此论文获得华数杯三等奖,为了避免二次外传,本文设置了水印,请各位注意文章隐私,同时由于限制,在此并未上传相关代码,若需要代码或答疑等服务,请私聊作者。 日常生活中五彩;缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。然而,传统的人工配色存在一定的局限性,如主观性强、效率低下等。因此,研究如何通过计算机方法来实现不透明制品的配色具有重要意义。 以下是部分题目 光通过物体传播有吸收、反射和透射三种方式。对于不透明制品来说,大部分光线会被其表面吸收或反射。吸收和反射的光线在经过透明度等校正后按波长分解成不同的颜色成分,形成光谱图。该光谱图通常由 400--700nm 波段的各色光组成。为简化计算,最终配色后的颜色的反射率以 20nm 为间隔的光谱数据来表示。对于不透明材料而言,吸收系数 K/散射系数 S 的比值与反射率 R 之间存在一定关系,具体请参考文献【1】《计算机配色理论及算法的研究》中的 K-M光学模型。基于光学模型得到的颜色参数,可应用于色

    华为 OD 机考攻略-加强版

    附件是 华为 OD 机考攻略_加强版,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

    分行业城镇非私营单位就业人员工资总额(2003-2011年).xls

    数据来源:中国劳动统计NJ-2023版

Global site tag (gtag.js) - Google Analytics