首页 > 其他分享 >osg添加光源

osg添加光源

时间:2023-12-31 19:11:56浏览次数:32  
标签:1.0 灯光 光源 添加 light include osg

osg添加光源

 

#include <osg/Light>#include <osg/LightSource>#include <osg/Node>#include <osg/Geode>#include <osgDB/ReadFile>#include <osgViewer/Viewer>int main(){
    // 创建一个场景节点
    osg::ref_ptr<osg::Node> root = new osg::Geode();
    // 创建一个光源
    osg::ref_ptr<osg::LightSource> lightSource = new osg::LightSource();
    // 创建一个光源下的子节点
    osg::ref_ptr<osg::Node> lightChild = osgDB::readNodeFile("earth.osg"); // 这里读取一个模型文件作为光源下的子节点
    lightSource->addChild(lightChild);
    // 创建一个灯光对象,设置灯光的位置和颜色
    osg::ref_ptr<osg::Light> light = new osg::Light();
    light->setLightNum(0); // 设置灯光的编号,这里设置为0号灯光
    light->setPosition(osg::Vec4(0.0f, 0.0f, 1.0f, 0.0f)); // 设置灯光的位置,这里设置为在z轴正方向上
    light->setDiffuse(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f)); // 设置灯光的漫反射颜色,这里设置为白色
    light->setSpecular(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f)); // 设置灯光的镜面反射颜色,这里也设置为白色
    // 将灯光加入到光源中
    lightSource->setLight(light);
    // 将光源加入到场景节点中
    root->addChild(lightSource);
    // 创建视图器,将场景节点添加到视图器中
    osgViewer::Viewer viewer;
    viewer.setSceneData(root);
    // 开始渲染并显示视图器窗口
    return viewer.run();
}

 

 

 

 

 

#########################################

标签:1.0,灯光,光源,添加,light,include,osg
From: https://www.cnblogs.com/herd/p/17923664.html

相关文章

  • Unity3d Vertex/Fragment Shader添加Shadow
    Shader"ZX/BaseVertFragmentShadow"{Properties{_DiffuseTexture("DiffuseTexture",2D)="white"{}_DiffuseTint("DiffuseTint",Color)=(1,1,1,1)}SubShader{......
  • java的二维数组怎么添加数据
    Java的二维数组怎么添加数据在Java中,二维数组是由多个一维数组组成的,可以看作是一个表格或者矩阵。要向二维数组中添加数据,我们可以使用循环来遍历数组的每个位置,并将数据赋值给对应的元素。创建和初始化二维数组在向二维数组添加数据之前,我们首先需要创建并初始化一个二维数组......
  • java的scrollpane中添加面板
    Java中ScrollPane中添加面板的实现方法引言作为一名经验丰富的开发者,我们经常会遇到需要在Java的ScrollPane中添加面板的需求。本文将向你介绍如何实现这一操作,并提供详细的步骤和代码示例。整体流程首先,让我们来看一下整个实现过程的流程图:flowchartTDA[创建ScrollPane......
  • IDEA添加作者信息
    方法一:手动添加设置>编辑器>实时模板/****@authorAurora*@date$DATE$*/编辑模板变量:$变量名$ 应用:输入AT,回车方法二:自动添加/***Author:Aurora*Date:${DATE}${TIME}*/......
  • [AHK2] 为toolwindow窗口添加阴影效果
    如下示例g:=Gui('-Caption+Border');或包含+ToolWindowg.SetFont('s13','consolas')g.AddText('c4c071d',data)g.BackColor:='f6eeda'g.Show('x100y50')WinSetTransColor('white......
  • 在ribbon的主窗口添加dialog
    1在。h文件中先把Cview换成CBGPFormView.2在。cpp文件中添加:CBCGPFormView(CWindowsDemo_MFCView::IDD),同时把cview换成cbgpformview3把第一张图中ID所对应的属性中的style换成child......
  • 动态添加的Promise按顺序执行
    原文链接:https://www.cnblogs.com/yalong/p/17935043.html动态添加的Promise异步事件按顺序执行需求描述用户点击一次页面上的一个按钮,就播放一个动画,如果点击n次就触发n次动画;在播放动画的同时,如果再点击按钮,那么会把n的次数累加,动画播放也增加对应的次数;同时支持在动画队......
  • 百度地图添加坐标点
    html<!DOCTYPEhtml><htmlxmlns="http://www.w3.org/1999/xhtml"><headrunat="server"><metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/><title>查看签到信息-地图&l......
  • KubeKey添加新节点
    KubeSphere使用一段时间之后,由于工作负载不断增加,可能需要水平扩展集群。自KubeSpherev3.0.0起,可以使用全新的安装程序 KubeKey 将新节点添加到集群。从根本上说,该操作是基于Kubelet的注册机制。换言之,新节点将自动加入现有的Kubernetes集群。1、工作准备需要一个单......
  • 添加一个SQL Server身份验证方式
    关键几步如下,特别是最后一步,记得勾选SQLServer和Windows.    参考网址:如何在SQLSERVER的windows身份验证添加一个SQLServer身份验证方式_sqlserverwindows身份验证添加-CSDN博客 ......