Cesium:矩形实体上的自定义材质

2024-01-18

我正在尝试添加一个具有多种不同属性的实体,例如材质(主要是 alpha)和旋转。矩形图形已覆盖旋转,并且在我设置材质来表示纹理时起作用。

viewer.entities.add({ 
  name: 'Site Layer', 
  rectangle: { 
    coordinates: rectangle, 
    material: 'Image.jpg', 
    rotation: Cesium.Math.toRadians(13)     
  }
});

但是,当我尝试使用自定义材质(使用https://github.com/AnalyticalGraphicsInc/cesium/issues/2484 https://github.com/AnalyticalGraphicsInc/cesium/issues/2484)它显示为白色纹理而不是所需的结果......类似于:

material = new Cesium.Material({
    fabric : {
        type : 'Color',
            uniforms : {
                image : 'Image.jpg',
                alpha : 0.5
            }
             components : {
                 diffuse : 'texture2D(image, materialInput.st).rgb',
                 alpha : 'texture2D(image, materialInput.st).a * alpha'
            }
        }
    }
);
viewer.entities.add({ 
  rectangle: { 
    coordinates: rectangle, 
    material: material,
    rotation: Cesium.Math.toRadians(13)     
  }
});

阅读文档,矩形中的材质似乎是 Cesium.MaterialProperty 而不是 Cesium.Material ...这是否意味着我不能简单地将材质分配给矩形?如果没有,我可以以某种方式将材质包装在自定义的 MaterialProperty 中以使其工作吗?

出于好奇,为什么 Material 和 MaterialProperty 之间的功能存在差异?

附注GroundPrimitive 对我不起作用,因为我需要支持的主要浏览器之一(Safari)报告 GroundPrimitives.isSupported = false

也发布在这里https://groups.google.com/forum/#!topic/cesium-dev/1IPjHD7G_NA https://groups.google.com/forum/#!topic/cesium-dev/1IPjHD7G_NA


汉娜在论坛上回答了这个问题。我将在下面复制她的答案,但首先我将添加我自己的注释,说明原因MaterialProperty不同于Material.

The Property版本,像所有一样铯实体属性 http://cesiumjs.org/Cesium/Build/Documentation/Property.html?classFilter=property,旨在描述当 Cesium 动画时某些事物的定义如何随时间变化。例如,一个MaterialProperty可以在一个时间间隔期间指示纯色,并且在单独的时间间隔期间指示条纹材料。实际底层Material可能会被破坏,并因此在动画期间创建替代品。

对于您的情况,如果您确实需要自定义构建的材质,当前最好的选择是避免实体 API 及其时间动态属性,而只使用带有Material直接上课。但正如 Hannah 指出的那样,您不需要它来进行简单的图像 Alpha 混合。汉娜写道:


这应该在即将发布的版本 (1.16) 中修复 您可以使用此代码制作半透明图像:

var viewer = new Cesium.Viewer('cesiumContainer');
viewer.entities.add({
    rectangle: {
        coordinates: Cesium.Rectangle.fromDegrees(-125,30,-110,40),
        material: new Cesium.ImageMaterialProperty({
            image: '../images/Cesium_Logo_Color.jpg',
            alpha: 0.5
        }),
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cesium:矩形实体上的自定义材质 的相关文章

  • 第52节:cesium 3DTiles模型特效+选中高亮(含源码+视频)

    结果示例 完整源码
  • cesium与three.js 结合的栗子,结合了一下网友们的栗子,解决了three.js 高版本模型出不来的问题

    废话不多说先上图 下面是源代码
  • VS Code断点调式Cesium

    1 在VS Code中安装Debugger for Firefox插件 2 下载安Firefox Developer Edition 3 创建launch json 编辑并保存launch json Use IntelliSense to
  • CesiumJS三维案例

    WebGL近几年越来越被人们所关注 但是二三维开发难度也比普通web要高出许多 不管我们是在在开发或者是学习过程中 往往需要耗费大量的时间去查阅资料和研究官方案例 让本来就非常紧张的而宝贵的精力卷到了不关紧要的地方 而大多二三维的包 ope
  • 天地图WMTS地图瓦片下载

    最近在开发个人项目中遇到了这样一个问题 即 本地开发使用天地图在线地图服务 部署到线上时 突然想到 天地图提供的开放地图服务是需要申请秘钥key才能够使用的 而且需要连接外网 同时也是有访问次数限制的 那么 如果是在内网环境中如何进行迁移呢
  • cesium+vue-cli安装步骤

    1 依赖node所以先安装node 可从官网下载安装 安装一直下一步最后选安装目录 2 win r输入cmd运行 先输入node v和npm v查看node安装是否正常 我这里node是10 5 0 npm是6 1 0 3 安装vue np
  • CesiumJS 中文学习手册

    1 Getting Started 入门 2 Developer Guides 开发人员指南 Creating Entities 创建实体 Imagery 图层 Terrain 地形 3D Models 3D 模型 Camera
  • Cesium - 使用相机缩放多边形以在放大/缩小时匹配经纬度位置

    我正在努力解决相机功能 我认为 可以提供一种方法强制我的多边形粘在我房子的顶部缩小 放大和旋转 或相机移动 这个问题遵循较早的question问题已解决 现在我需要一点帮助来解决我的下一个问题 我试图遵循的示例代码位于黄金标准似乎已融入现有
  • 无法自动确定Cesium基本URL(Typescript)

    我正在尝试为 React TypeScript 设置 cesium 和 resium 但在最初的步骤上陷入了困境 我目前正在参考以下步骤恢复网站 https resium darwineducation com installation 从
  • 如何设置默认视图位置(Cesium 1.6)

    我想为 cesium 应用程序设置默认视图 主页位置 我不只是想飞到那个地点一次 我希望将位置设置为默认 主页 以便它可以在应用程序的其他地方使用 例如在里面主页按钮 http cesiumjs org Cesium Build Docum
  • 如何在Cesium.js中绘制自定义动态广告牌

    我目前正在使用铯进行地图应用程序 并且我需要为我正在绘制的每个项目提供状态指示器 例如 如果我正在绘制的项目是一架飞机 那么我需要有燃料状态指标 我无法使用 Cesium 的绘图工具来执行此操作 因为它们是使用地理位置绘制的 但我需要我的状
  • CesiumViewer 中的响应式 DIV [CesiumJS]

    我正在定制一个 Cesium 地图 它有一个覆盖层 里面有各种信息 我用 bootsrap 实现的覆盖层的样式 不幸的是我放置的 div 保留在特定位置并忽略页面大小的调整 有没有办法让添加到铯查看器的 DIV 响应 我现在做的是 var
  • Cesium:矩形实体上的自定义材质

    我正在尝试添加一个具有多种不同属性的实体 例如材质 主要是 alpha 和旋转 矩形图形已覆盖旋转 并且在我设置材质来表示纹理时起作用 viewer entities add name Site Layer rectangle coordi
  • 铯标签模糊

    我使用以下代码创建了一个 Cesium 标签 var label Cesium LabelGraphics new Cesium LabelGraphics text lab verticalOrigin Cesium VerticalOr
  • Cesium地图可以在Apache HTTP服务器而不是node.js环境上运行吗?

    我有一个 Apache HTTP 服务器 可以处理我对 Ruby on Rails 项目的所有请求 我们正在考虑添加 Cesium 地图组件 我想知道是否可以在 Apache HTTP 服务器上运行 Cesium 而不是设置 node js
  • 如何根据视图边界在Cesium Map中向左或向右旋转

    想要模仿 CesiumJS 应用程序中的左右箭头键 类似于 Google 地球导航 按向右或向左箭头键应分别向右或向左旋转地球约 5 的视图边界 如果缩小 则旋转较大范围 而放大则旋转较小范围 已经查看了文档Viewer https ces
  • 更新Cesium回调属性导致实体闪烁

    这是一些可以粘贴到铯沙堡中的代码 它将一个实体添加到地图中 然后每秒更新位置属性的 CallbackProperty 每次更新时实体都会闪烁 var viewer new Cesium Viewer cesiumContainer var
  • Cesium:拾取实体并检索 WMS 信息

    我开发了一个建筑物的 3D 查看器 我现在尝试添加的是选择建筑实体下方的 WMS 网络地图服务 内容 基本上 我希望能够选择用户左键单击位置的建筑物 建筑物的颜色应该改变 有效 我想检索用户点击位置的网络地图服务信息 这是我到目前为止编写的
  • cesium:如何在Cesium中设置不同形状的Z-index?

    如何在Cesium中设置不同形状的Z index 请参阅下面的屏幕截图 我希望圆柱体内的广告牌图标显示在圆柱体上 提前致谢 这并不容易 因为您的圆柱体是实际的 3D 体积 并且您的广告牌位于其中 3D 渲染引擎中没有 CSS 样式的 Z 索
  • Cesium - 为什么 scene.pickPositionSupported 为 false

    我最终试图在我的房子顶部画一个多边形 我能做到 问题是 在缩小 放大和旋转 或相机移动 时 多边形不会粘在我房子的顶部 我得到了很大的帮助这个答案 https stackoverflow com a 35992537 1735836 所以

随机推荐

  • 挂钩容器请求 LDAP 用户角色的进程

    在我的应用程序中 我使用带有 LDAP 领域的基于表单的身份验证 对于授权 我使用数据库 据我了解 其工作原理如下 App gt user pass gt LDAP lt OK user exists gt ask for security
  • Ruby 检查可读性?

    有没有办法使检查的输出更具可读性 在 Perl 中 有Data Dumper这使得输出更容易阅读 ruby 标准库包含 PP Pretty Print 的缩写 它比标准检查更好地格式化结构 http www ruby doc org std
  • 如何确定目标MAC地址

    我的应用程序在 CentOS 5 5 上运行 我需要使用 libpcap API 发送原始数据包 pcap inject or pcap sendpacket 到特定的IP地址 如何确定 MAC 地址属于特定目标 看起来你想要的是ioctl
  • 内存屏障和 TLB

    内存屏障保证数据缓存的一致性 但是 它能保证TLB的一致性吗 我发现一个问题 在线程之间传递 MappedByteBuffer 时 JVM java 7 update 1 有时会因内存错误 SIGBUS SIGSEG 而崩溃 e g fin
  • javascript过滤数组多个条件

    我想简化对象数组 假设我有以下数组 var users name John email email protected cdn cgi l email protection age 25 address USA name Tom email
  • 访问查询错误(“from 子句中的语法错误”)

    consulta3 SELECT FROM Dept INNER JOIN Userinfo INNER JOIN Checkinout on Dept DeptName departamento where Dept Deptid Use
  • 修复 Google Chrome 上的蓝线

    我有以下 HTML div div aga ad gdas ga gs ds da dgs sd ds dg gdgsdgwa div div And CSS a b position absolute height 10px font s
  • 当进程尚未完成时 GetExitCodeProcess() 返回 1

    如果我创建一个进程和两个管道集 并且该进程在某个时间需要一些用户输入 则GetExitCodeProcess 从 Windows C API 总是返回1 作为示例 您可以使用 Windowstime命令 这将返回 The current t
  • 填充数据框中缺失的组合

    我的示例数据集 df lt data frame REGION c REGION A REGION A REGION B CATEGORY c A B B VALUE1 c 2 3 4 VALUE2 c 1 2 3 Result REGIO
  • Magento URL重写管理保留GET参数[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我经常使用 Magneto 的 URL 重写管理来重定向一堆页面 然而 URL 带有附属信息 即www mysite com aff 12
  • 移动网站 - 根本不滚动

    我到处搜索 我的网站没有固定的高度 没有固定的展示位置 它显示了我想要的视口 但仅此而已 它不会滚动或显示任何其他内容 我缺少什么 我已经尝试了各种溢出选项 但似乎没有任何效果 我会做以下 我首先会暂时禁用 删除样式表 以确保一切都像纯 h
  • Azure AD 身份验证中的访问令牌验证

    我能够在 Azure AD 身份验证中请求令牌 但问题是每当我更改 access token 中的最后一个字符时 它仍然在我的 API 中成功请求 我只是按照这个https mehmetkut com 2017 05 protect asp
  • 多个复选框值将显示在文本框中

    这是我的代码 div align center b A b div
  • 核心数据如何更新一条记录?

    我有一些对象是与对象用户一对一相关的图像 例如 Image User 现在我想做 当用户登录时 我向每个图像显示一个按钮以添加到收藏夹 当我单击此按钮时运行此代码 User user UserController sharedInstanc
  • ServiceStack:动态添加路由

    我还没有尝试过这个 但我希望每个模块 Silverlight 注册自己的路由 而不是将其添加到应用程序启动中 可以在应用程序启动后将路由添加到 AppHost 还是必须在配置步骤中立即注册它们 我正在考虑在启动时扫描所有程序集 并向AppH
  • 如何告诉 Grunt 在构建任务中不要缩小或连接 js 文件?

    我刚刚使用 Yeoman 搭建了一个 Angular 应用程序 我注意到build默认情况下 task 会执行几件事 包括缩小和连接 js 文件 我想要一个更简单的构建任务 不执行任何缩小或串联 而是只执行以下两件事 将我的 scss 编译
  • 尝试在 AWS Elastic Beanstalk Web 服务器(单实例)PHP 上配置 SSL 时出现问题

    我正在将客户的网站迁移到 AWS 我已配置所有内容并正常工作 但客户希望能够在该网站上接受付款 我遵循了几个关于如何使用 elastic beanstalk 让 SSL 工作的指南 目前 我已将其设置为使用源包 并在 ebextension
  • API网关上的数据聚合

    我正在研究微服务架构 我想聚合来自两个微服务的数据 例如 Frontend 调用 API Gateway API Gateway 调用两个微服务 Customer 和 Order 微服务 客户微服务返回客户详细信息 订单微服务返回客户订购的
  • perl排序问题

    我有一些巨大的日志文件需要排序 所有条目都有一个 32 位十六进制数字 这是我想要使用的排序键 有些条目是单行的 例如 bla bla bla 0x97860afa bla bla 其他的有点复杂 从上面相同类型的行开始 扩展到用大括号标记
  • Cesium:矩形实体上的自定义材质

    我正在尝试添加一个具有多种不同属性的实体 例如材质 主要是 alpha 和旋转 矩形图形已覆盖旋转 并且在我设置材质来表示纹理时起作用 viewer entities add name Site Layer rectangle coordi