当前位置: 首页 > wzjs >正文

企业网站托管一个月多少钱怎样做网页制作视频

企业网站托管一个月多少钱,怎样做网页制作视频,医疗保险网站开通建设,wordpress漂浮按钮Qt 中使用 OpenGL 实现光照效果主要基于 OpenGL 的光照模型和着色器编程。以下是 Qt OpenGL 光照实现的核心原理: 一. 光照模型基础 OpenGL 使用 Phong 光照模型,包含三个主要光照分量: 环境光(Ambient):场景中的基础光照,没有方向性 漫反射光(Diffuse):与表面法线和光…

        Qt 中使用 OpenGL 实现光照效果主要基于 OpenGL 的光照模型和着色器编程。以下是 Qt OpenGL 光照实现的核心原理:

一. 光照模型基础

OpenGL 使用 Phong 光照模型,包含三个主要光照分量:

  • 环境光(Ambient):场景中的基础光照,没有方向性

  • 漫反射光(Diffuse):与表面法线和光线方向相关的散射光

  • 镜面光(Specular):在特定角度可见的高光反射

二. Qt 中的实现方式

2.1 传统固定管线方式 (已过时但简单)

cpp

// 启用光照
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0); // 启用0号光源// 设置光源属性
GLfloat lightPosition[] = {1.0f, 1.0f, 1.0f, 1.0f};
GLfloat lightAmbient[] = {0.2f, 0.2f, 0.2f, 1.0f};
GLfloat lightDiffuse[] = {0.8f, 0.8f, 0.8f, 1.0f};
GLfloat lightSpecular[] = {1.0f, 1.0f, 1.0f, 1.0f};glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);
glLightfv(GL_LIGHT0, GL_AMBIENT, lightAmbient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, lightDiffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, lightSpecular);// 设置材质属性
GLfloat materialAmbient[] = {0.7f, 0.7f, 0.7f, 1.0f};
GLfloat materialDiffuse[] = {0.8f, 0.8f, 0.8f, 1.0f};
GLfloat materialSpecular[] = {1.0f, 1.0f, 1.0f, 1.0f};
GLfloat materialShininess = 100.0f;glMaterialfv(GL_FRONT, GL_AMBIENT, materialAmbient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, materialDiffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, materialSpecular);
glMaterialf(GL_FRONT, GL_SHININESS, materialShininess);

2.2 现代可编程管线方式 (推荐)

使用着色器实现光照效果:

顶点着色器示例

glsl

#version 330 corelayout(location = 0) in vec3 position;
layout(location = 1) in vec3 normal;out vec3 FragPos;
out vec3 Normal;uniform mat4 model;
uniform mat4 view;
uniform mat4 projection;void main()
{FragPos = vec3(model * vec4(position, 1.0));Normal = mat3(transpose(inverse(model))) * normal;gl_Position = projection * view * vec4(FragPos, 1.0);
}
片段着色器示例 (Phong光照)

glsl

#version 330 corein vec3 FragPos;
in vec3 Normal;out vec4 FragColor;uniform vec3 lightPos;
uniform vec3 viewPos;
uniform vec3 lightColor;
uniform vec3 objectColor;void main()
{// 环境光float ambientStrength = 0.1;vec3 ambient = ambientStrength * lightColor;// 漫反射vec3 norm = normalize(Normal);vec3 lightDir = normalize(lightPos - FragPos);float diff = max(dot(norm, lightDir), 0.0);vec3 diffuse = diff * lightColor;// 镜面光float specularStrength = 0.5;vec3 viewDir = normalize(viewPos - FragPos);vec3 reflectDir = reflect(-lightDir, norm);float spec = pow(max(dot(viewDir, reflectDir), 0.0), 32);vec3 specular = specularStrength * spec * lightColor;vec3 result = (ambient + diffuse + specular) * objectColor;FragColor = vec4(result, 1.0);
}

三. Qt 中的实现步骤

<

http://www.dtcms.com/wzjs/585613.html

相关文章:

  • 担路网口碑做网站好吗打折网站运营思路
  • 为什么用MyEclipse做网站windows优化大师怎么用
  • 百度站长平台注册私人定制网站
  • 枞阳县住房和城乡建设局网站在线图片编辑软件免费版
  • 使用cn域名做网站的多吗温州有没有做鞋的网站
  • 哪个网站查食品建设好在家可以加工的小工厂
  • 新网登录网站后台揭阳企业建站系统模板
  • 达州市住房和城乡建设局网站安徽建设厅考勤网站
  • 成都的企业网站建设公司专业建站方案
  • 站长统计app进入网址新版手机网站怎么制作内容
  • 济南做企业网站的公司岳麓做网站的公司
  • 做汽车销售要了解的网站企业网站建设方案机构
  • 网站建设定制设计国内外贸公司前十名
  • 电子商务网站建设及其相关法律问题万网网站如何建设
  • 自己做的小说网站要交税吗getoption wordpress
  • 进qq空间上面没有网站静安集团网站建设
  • 友点企业网站管理系统wordpress文件共享
  • 吴江微信网站制作郑州企业网站优化公司
  • 苏州网站制作计划南京市工程造价信息网
  • 乐山网站开发公司电话南阳网站建设seo
  • 怎么创建网站页面宣城公司网站建设
  • 营销网站规划的要点包括( )广西桂林为什么穷
  • 云和网站建设wordpress 登录流程
  • 网站如何做百度权重网站建设教程app
  • 深圳品牌营销网站网站建设厦门同安
  • 什么网站可以免费做试卷微信公众号商城制作
  • 南宁市网站开发建设wordpress自适应主题制作
  • 陆家网站建设二次开发创造作用
  • 长裕建设有限公司网站wordpress 笔记
  • 一般做网站用什么语言公司网站设计图