Hoops API参考: 3D Graphics System的Set_Color()函数

news2024/11/20 10:21:09
void Set_Color(const char* color_spec)

渲染一个段的内容时改变使用的颜色。还可以用于选择要在高亮模式中使用的曲面特性,以及用于特殊纹理贴图效果。

具体细节

Set_Color()的通用目标是使用这个颜色进行绘制。你可以之只给颜色命令,也可以具体描述颜色应用的具体几何体类型。在HOOPS高亮模式,Set_Color()允许你描述照明表面的反射性reflection、透射性transmission(材质属性)。此外,你可以制定像颜色一样使用的图片和纹理的名称。
color_spec的颜色部分以描述的形式出现,例如 “pinkish sunset-orange” or “pale gray” or “R=0.8 G=0 B=0.1”.。

HOOPS支持的颜色列表:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

定义组合规则的形式语法

不区分大小写

color                ->        qual-list hsimple        
qual-list            ->        qual-list 1st-degree     
                    ->        qual-list 2nd-degree     
                    ->        optspace                 
1st-degree           ->        1st-name                 
                    ->        primitive `ish'          
2nd-degree           ->        2nd-name                 
                    ->        primitive `er'           
hsimple              ->        simple `-' simple        
                    ->        simple                   
simple               ->        defined-name             
                    ->        primitive                
primitive            ->        lparen `R' val `G' val    `B' val rparen
                    ->        lparen `H' val `S' val /I>`V' val rparen
                    ->        lparen `H' val `L' val `S' val rparen
                    ->        lparen color rparen      
val                  ->        optspace `=' optspace float-num optspace 
1st-name             ->        defined-name             
2nd-name             ->        defined-name             
defined-name         ->        optspace trim-name optspace 
trim-name            ->        letter trim-name         
                    ->        letter                   
float-num            ->        optpm digits optfrac optexp
optpm                ->        `+'                      
                    ->        `-'                      
                    ->        <nothing>                
digits               ->        `0..9' optdigits         
optdigits           ->        `0..9' optdigits         
                    ->        <nothing>                
optfrac              ->        `.' optdigits            
                    ->        <nothing>                
optexp               ->        `E' optpm digits         
                    ->        <nothing>                
letter               ->        `A..Za..z0..9'           
                    ->        `'(2)                    
                    ->        `#'                      
                    ->        `-'                      
                    ->        `$'                      
                    ->        `_'                      
                    ->        `%'                      
                    ->        `/'                      
lparen              ->        `(' optspace             
rparen              ->        `)' optspace             
optspace             ->        `' optspace              
                    ->        `<tab>' optspace         
                    ->        <nothing>                

如何定义颜色

如果只在color_spec中命名一种颜色,则所有不同类型的几何体都将使用该颜色(窗口颜色和对比度颜色不受影响)。

如果希望更具体,color_spec也可以是一个字符串,由要着色的几何体类型、等号和要使用的颜色组成。例如:“lines=red”。单词周围可以插入空格。通过嵌入逗号,可以在给定的color_spec中创建多个规范,如下例所示:

Set_Color("lines = red, edges = green")

相同的颜色可以折叠在一起:

Set_Color("lines=edges=green, faces=markers=blue")

可以在以下各项上设置颜色:

ambient light

faces

多边形、壳、网格、椭圆和圆(曲面)的内部填充区域。与其他类型的几何体不同,面除了主颜色之外还具有其他特性。

lines

与“polylines”同义。

polylines

适用于直线、多段线和墨迹线。

markers

适用于标记符号

特殊表面颜色选项

通常只需要一种颜色来描述几何体(例如,“lines=red”),但是,面可以有更复杂的定义。这些更复杂的设置可用于启用以下功能:

  • Transparency(a.k.a transmission)

Transparency(a.k.a transmission)

支持透明度的设备通常要求延迟透明对象,以便可以按深度对其进行排序。因此,使曲面透明通常会减慢渲染过程。Set_Rendering_options()中提供了几个不同的透明度隐藏曲面移除算法选项(查找“透明度”子选项)。这些不同的策略控制透明几何体的速度和质量之间的权衡。

Set_Color("Faces=(transmission=black)")

描述了完全不透明的表面

 Set_Color("faces=(transmission=white)")

描述了一种完全透明的材料

Set_Color("faces=(transmission=green)")

描述了对红色和蓝色不透明但对绿色透明的曲面。

非灰度值(即r=g=b)的传输设置往往与现代图形硬件的映射较差,因此可能会产生比正常性能更大的性能损失。
表面透明度的精度取决于硬件和所使用的隐藏表面移除类型。一些显示设备具有加速绘制透明表面的硬件,但只允许一定程度的透明度而不是颜色(在这种情况下,使用颜色的强度,但忽略色调和饱和度)。
并非所有设备或隐藏表面算法都能够支持传输。否则,透明几何体将呈现为不透明。

在特殊情况下,您可能希望以数字方式(有关详细信息,请参阅set_Color_By_Value())或间接方式(请参阅set_Clor_By_Index())设置颜色。如果您的程序正在计算颜色参数,则“按值”设置颜色可能是合适的。“按索引”设置颜色允许间接控制颜色使用,并与HOOPS“图像”约定兼容。将颜色作为参数的特殊面部颜色(即除光泽外的所有颜色)也可以通过显式浮点值的值设置。

 Set_Color("faces = (transmission = (r=0.2 g=0.2 b=0.2))")

如果您正在从HOOPS多边形、壳或网格构建三维图形,并且不使用灯光,则需要确保“边”可见,否则您将只看到图形的轮廓。要区分边,您需要绘制有图案的面,或者选择与“面”颜色不同的“边”颜色。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/62459.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

警惕 有种过敏叫“牛奶蛋白过敏”

过敏是一个全球性的健康问题。以此为基础。WHO据统计&#xff0c;过敏已成为世界第六大疾病。世界上有3亿人患有哮喘、特应性皮炎、过敏性鼻炎、胃肠道疾病等疾病。美国每年有4%-6%的儿童患有食物过敏。由于环境和食品添加剂的日益复杂&#xff0c;中国和发达国家的过敏性疾病正…

Java项目:SSM简单医院信息管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 管理员角色&#xff1a; 登录,个人资料管理,用户管理,科室管理,医生管理,患者管理,科室项目管理,患者诊疗记录管理等功能。 医生角色包含以下功…

SpringMVC_第1章

SpringMVC_第1章 文章目录SpringMVC_第1章一、SpringMVC简介1 SpringMVC概述问题导入1.1 SpringMVC概述2 入门案例【重点】问题导入2.1 实现步骤2.2 代码实现【第一步】创建web工程&#xff08;Maven结构&#xff09;【第二步】设置tomcat服务器&#xff0c;加载web工程(tomcat…

[附源码]计算机毕业设计基于Springboot楼盘销售管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

闲人闲谈PS之三十六——项目状态控制

**惯例闲话&#xff1a;**最近感觉时间不够用&#xff0c;脑子有很多想法&#xff0c;但是到下笔却感觉总是下不了手&#xff0c;写完一段&#xff0c;感觉和自己想的差距很大&#xff0c;然后有全部删除…这难道就是传说中年纪大了&#xff0c;手脚不停使唤…这让闲人更加焦虑…

[附源码]计算机毕业设计基于Springboot数字乡村基础治理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【JDBC】------ResultSet(结果集)和常见异常

分享第二十条励志语句 宁可自信&#xff0c;也不要盲目悲观。因为自信是一种力量&#xff0c;即使你的自信有些盲目&#xff0c;也无关大局&#xff0c;你可以在实践中调整心态&#xff0c;找到自己的恰当的位置。如果盲目自卑&#xff0c;你就必然失去一切。 目录 分享第二十…

汇编语言之母逝世,71岁时还和儿子合写神经网络论文

凯瑟琳・布斯被称为汇编语言之母&#xff0c;具体来说就是她创造了第一个“汇编语言”。 在1940年代中期&#xff0c;第一台通用电子计算机最初并没有用于代码的内部存储。如果我们想要用它编程&#xff0c;就要操纵数千个开关和电缆&#xff0c;而这些开关和电缆所在的位置&am…

GDP-L-岩藻糖,鸟苷二磷酰岩藻糖,Guanosine 5′-diphospho-β-L-fucose sodium salt

产品名称&#xff1a;GDP-L-岩藻糖&#xff0c;鸟苷二磷酰岩藻糖 英文名称&#xff1a;Guanosine 5′-diphospho-β-L-fucose sodium salt 英文别名 [(2R,3S,4R,5R)-5-(2-Amino-6-oxo-1,6-dihydro-9H-purin-9-yl)-3,4-dihydroxytetrahydro-2-furanyl]methyl (3S,4R,5S,6S)-3,…

周末小技 | 开发一个Feeds流系统——写扩散模式

点个关注&#x1f446;跟腾讯工程师学技术导语 | 本文主要针对Feeds流进行介绍&#xff0c;将从Feeds流的演变入手&#xff0c;带你一步步了解Feeds流&#xff0c;而后学习如何从开发角度入手&#xff0c;对其进行建模&#xff0c;抽象出Feeds流常见的架构&#xff0c;最终搭建…

Python开发6年,整理的《Python从入门到精通学习笔记》免费下载

前言 首先明确一点&#xff1a;为什么要学习python&#xff1f; 我说几个最主要的。 1.简单易学&#xff0c;入门友好 python其实就是英文句子&#xff0c;你只要能够认识基本的英文单词&#xff0c;你就可以非常熟练地使用python。 &#xff08;文末送读者福利&#xff09…

[附源码]计算机毕业设计水果管理系统Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

苹果app开发流程详解​

苹果App Store上传应用流程详解&#xff0c;在向AppStore提交应用之前&#xff0c;开发者首先要成为苹果iOS开发者项目的成员&#xff0c;每年向苹果缴纳99美元或199美元的费用&#xff08;具体申请方法后期更新&#xff09;。​ 免688开发IOS应用&#xff0c;根据apple的规定…

信号驱动任务执行(pause、sigsuspend函数)

信号驱动任务指的是通过信号来驱动任务的执行&#xff0c;每发送一次信号&#xff0c;任务就执行一次。实现该目的所需的函数就是 pause 或者 sigsuspend&#xff0c;pause和sigsuspend函数可以暂停当前进程&#xff0c;直至收到信号才会继续运行之后的程序。 目录 1、认识 pa…

实战:kubeadm方式搭建k8s集群(containerd)-2022.12.5(成功测试-超详细)【荐】

实战&#xff1a;kubeadm方式搭建k8s集群(containerd)-2022.12.5(成功测试-超详细)【荐】 写在开头 语雀原文阅读效果最佳&#xff0c;原文地址&#xff1a;实战&#xff1a;kubeadm方式搭建k8s集群(containerd)-2022.12.5(成功测试-超详细)【荐】 语雀 《实战&#xff1a;ku…

Liunx进程间信号

Linux进程间信号 文章目录Linux进程间信号1.信号的理解1.1 对信号的认识1.2 为什么要有信号1.3 信号概念1.4 查看系统定义的信号的方法1.5 信号的处理方式2.产生信号的方法2.1 通过终端按键发送信号2.2 通过系统函数发送信号2.3 通过软件条件发送信号2.4 通过硬件异常发送信号2…

股市资讯天宇优配|政策利好叠加竞争格局向好 机构做多建材板块

近来&#xff0c;受房地产板块上涨带动&#xff0c;建材板块也敞开一轮反弹行情&#xff0c;东方雨虹、三棵树、科顺股份等体现抢眼。在组织看来&#xff0c;房地产职业近期利好政策频出&#xff0c;商场对建材职业后期需求的忧虑将会消解。另一方面&#xff0c;在过去一年多的…

计算机总线详解(数据总线、地址总线、控制总线)

文章目录1 概述2 总线分类2.1 数据总线 Data Bus2.2 地址总线 Address Bus2.3 控制总线 Control Bus3 扩展3.1 常考题3.2 百度百科 - 总线 Bus1 概述 总线&#xff08;Bus&#xff09;是计算机各种功能部件之间传送信息的 公共通信干线如果说 主板&#xff08;Mother Board&am…

Hadoop集群安装和搭建

Hadoop集群安装和搭建 前言    Hadoop是一个开源的、可运行与Linux集群上的分布式计算平台&#xff0c;用户可借助Hadoop存有基础环境的配置&#xff08;虚拟机安装、Linux安装等&#xff09;&#xff0c;Hadoop集群搭建&#xff0c;配置和测试。 一、虚拟机的安装  VMware …

.sqlite后缀文件转为sql文件

第一步 安装sqlite3 1.官网下载 https://www.sqlite.org/download.html &#xff0c;因为我是win64的&#xff0c;需要下载图片这两个安装包 2.将解压下载的安装包 首先创建一个文件夹&#xff0c;比如放在D盘&#xff0c;在D盘创建一个文件目录sqlite,路径最终为D:\sqlit…