首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Threejs入门之十二:认识Threejs中的材质

alpha值,默认值为0,如果设置不透明度(opacity)低于此值,则不会渲染材质。...值0.0表示完全透明,1.0表示完全不透明。如果材质的transparent属性未设置为true,则材质将保持完全不透明,此值仅影响其颜色。 默认值为1.0。...默认为true 2.MeshBasicMaterial MeshBasicMaterial,基础网格材质,我们在前面已经用过好多次了,这种材质不受光照的影响,没有阴影;但是可以给它设置颜色不透明度const...受光照的影响,它可以很好地模拟一些表面(例如未经处理的木材石材),但不能模拟具有镜面高光的光泽表面(例如涂漆木材),我们之前的例子中也使用过这种材质const material = new THREE.MeshLambertMaterial...与MeshLambertMaterial中使用的Lambertian模型不同,该材质可以模拟具有镜面高光的光泽表面(例如涂漆木材),其常用属性如下 emissive : 材质的放射(光)颜色,基本上是不受其他光照影响的固有颜色

1.3K10

基础渲染系列(十一)——透明度

(一些不完整的四边形) 1 抠图渲染 要创建透明材质,我们必须知道每个片段的透明度。此信息通常存储在颜色Alpha通道中。...在我们的例子中,这是主反照率纹理的Alpha通道,以及颜色色调的Alpha通道。 下面是透明度贴图的示例。它是纯白色的纹理,因为它是白色的,所以我们可以完全专注于透明度,而不会受到反照率模式的干扰。...再举一个例子,你可以使用着色器替换来查看是否有任何对象在视图中使用cutoff着色器,方法是将它们设置为亮红色其他颜色。当然,这仅适用于具有适当RenderType标签的着色器。...由于我们的着色器尚不支持该模式,因此它将恢复为不透明。但是,使用帧调试器时你会发现有所不同。 当使用不透抠图渲染模式时,材质对象将通过Render.OpaqueGeometry方法进行渲染。...调整反照率颜色后,将此表达式用作新的Alpha值。 ? 结果应该比以前暗一些,以模拟光线从对象背面反弹。 ?

3.6K20
您找到你想要的搜索结果了吗?
是的
没有找到

QQ隐藏图原理与C#实现(含源文件)

明度叠加算法 设有两张图A,B,A在B的上面,B的不透明度为255(0表示全透明,255表示不透明),A的不透明度alpha,则实际看到的像素值为 灰度图算法 设白图在点(i,j)处像素值为G’,...原来之前的灰度图中,使用灰色像素来显示白图,在白色背景下通过不透明度让灰色像素显示,而在黑色背景下,灰色像素有颜色优势,无论不透明度是多少都不影响它在黑色背景下隐藏。...白图在黑色背景下,灰度值越高(颜色越白),则不透明度应该越低。...所以我们得出结论,不透明度应随着灰度值的增大而减小,且具有相同区间[0,255],显然正比例函数就具有上述特性 设不透明度alpha,灰度值G = (0.299R+0.587G+0.114B) / 3;...对于黑图,它想要在黑色背景下显示,因此灰度值越大(颜色越白),不透明度越高,即不透明度与灰度值也成正比,我们也用上面那式子来代入计算, 得到 alpha = G,这是黑图的计算方法。

1.5K10

Unity Shader

1.1 不透明物体的渲染顺序 对于完全不透明的物体,渲染的顺序并不会影响渲染的结果,这是因为有 深度缓存 的存在,深度是如何工作的,可以参考下面这段伪代码。...这个方法应用于透明物体会存在问题:假设透明物体A位于摄像机和不透明物体B之间,那么摄像机应该能够看到B,然而如果使用深度测试和写入的方法,在深度测试时因为A的深度更小,直接采用了A的颜色,根本看不到B的颜色...一个解决方法是对物体进行先排序,再渲染 先渲染所有的不透明物体,开启它们的深度测试和深度写入 半透明物体按照距离摄像机的远近排序,从远到近进行渲染,进行 透明度测试混合 。...容易得出结论:使用 Alpha Test,像素要么 完全透明 ,要么 完全不透明 。...(透明半透明)能够被渲染,然而当物体本身有一部分被自己遮挡时,关闭深度写入就会有问题,下面这个示意图是一个 knot 的物体,使用本节的 Alpha Blend shader 渲染得到的结果: 关闭深度写入的

3.3K65

Unity Shader

1.1 不透明物体的渲染顺序 对于完全不透明的物体,渲染的顺序并不会影响渲染的结果,这是因为有 深度缓存 的存在,深度是如何工作的,可以参考下面这段伪代码。...这个方法应用于透明物体会存在问题:假设透明物体A位于摄像机和不透明物体B之间,那么摄像机应该能够看到B,然而如果使用深度测试和写入的方法,在深度测试时因为A的深度更小,直接采用了A的颜色,根本看不到B的颜色...一个解决方法是对物体进行先排序,再渲染 先渲染所有的不透明物体,开启它们的深度测试和深度写入 半透明物体按照距离摄像机的远近排序,从远到近进行渲染,进行 透明度测试混合 。...容易得出结论:使用 Alpha Test,像素要么 完全透明 ,要么 完全不透明 。...(透明半透明)能够被渲染,然而当物体本身有一部分被自己遮挡时,关闭深度写入就会有问题,下面这个示意图是一个 knot 的物体,使用本节的 Alpha Blend shader 渲染得到的结果: 关闭深度写入的

2.6K20

dotnet OpenXML 颜色变换

颜色变换是对基础颜色的相关属性的修改。 例如,透明度是与颜色相关的属性。...alpha:产生具有指定不透明度的输入颜色,但其颜色不变。 alphaOff:产生其输入颜色或多或少不透明的版本。...Alpha偏移量永远不会使Alpha值超过100%降低至0%以下;也就是说,转换结果会将alpha固定为[0%,100%]的范围。 如 10%的alpha偏移将50%的不透明度增加到60%。...如 -10%的alpha偏移将50%的不透明度降低到40%。 alphaMod:产生其输入颜色或多或少的不透明版本。 alpha调制永远不会将alpha增加到100%以上。...如 200%的alpha调制使输入颜色的透明度是以前的两倍。 50%的alpha调制使输入颜色的透明度是以前的一半。 hue:产生具有指定色相但饱和度和亮度不变的输入颜色

63720

明度叠加算法:如何计算半透明像素叠加到另一个像素上的实际可见像素值(附 WPF 和 HLSL 的实现)

对于完全不透明的背景和带有透明度的前景,合并算法为: float r = (foreground.r * alpha) + (background.r * (1.0 - alpha)); 这是红色。...你需要阅读以下两篇博客了解如何在 WPF 中按像素修改图像,然后应用上面的透明度叠加代码。...WPF 修改图片颜色 WPF 通过位处理合并图片 话说,一般 UI 框架都自带有透明度叠加,为什么还要自己写一份呢? 当然是因为某些场景下我们无法使用到 UI 框架的透明度叠加特性的时候。...Background 是从采样寄存器 0 取到的颜色采样,Foreground 是从采样寄存器 1 取到的颜色采样。 这里的计算中,背景是不带透明度的,而前景是带有透明度的。...,那么可以通过自己设一个透明度模拟,传入透明度Alpha

3.9K20

android设置对话框背景透明度和弹出位置

,但我们可以通过设置对话框的alpha值将其变成透明半透明效果。...颜色由R(红)、 G(绿)、B(蓝)组成。除此之外,还会有一个A(透明度Alpha)来描述颜色。在颜色的描述中,如果该值为0表示完全透明,如果该值为255,表示 不透明。...通过设置Windows的alpha属性也可以设置对话框的透明度。但alpha的取值范围是从0到1.0。如果该属性值为0,表 示完全透明,如果该值为1.0,表示不透明(也就是正常显示的对话框)。...下面的代码通过将alpha的值设为0.3,为了更清晰地显示透明的对话框和非透 明的对话框。在本例中加了一个背景图像,将同时显示了两个对话框(一个是半透明的,另一是不透明的)。...alertDialog.show(); 我们在使用某些应用时会发现当弹出对话框某些模式窗口时,后面的内容会变得模糊不清楚。实际上,这些效果也很容易在OPhone中实现。

2.3K60

【Android 应用开发】Paint 图形组合 Xfermod 之 合成模式表示方法 ( Xfermod 使用步骤 | 透明度 颜色值 公式表示方法 | 老版本表示方法 | 合成区域分块 )

: \alpha_{dst} ; ② 目标图像 指定像素位置 的颜色值 : C_{dst} ; 2.源图像相关 : ① 源图像 指定像素位置 的透明度 : \alpha_{src} ;...② 源图像 指定像素位置 的颜色值 : C_{src} ; 3.合成结果相关 : ① 合成后 指定像素位置 的透明度 : \alpha_{out} ; ② 合成后 指定像素位置 的颜色值 :...透明度颜色值 ; ---- 老版本的表示方法 老版本的表示方法 : 1.目标图像相关 : [D_a , D_c] , 表示该目标图像的透明度颜色值属性 ; ① 目标图像 指定像素位置 的透明度...的透明度 : R_a ; ② 合成后 指定像素位置 的颜色值 : R_c ; ---- 合成模式 相关 区域 合成区域描述 : ① 集合 S 表示 源图像素 不透明区域 ; ② 集合 D...源图像 与 目标图像 不透明区域的交集 ; ⑥ 集合 S \cup D 表示 源图像 与 目标图像 不透明区域的并集 ; 之后的每个模式都要分析上述某几个区域的 透明度颜色值 ;

1.5K20

(译)SDL编程入门(13)透明度混合

明度混合 得益于新的硬件加速渲染,SDL2.0中的透明度变得更快。这里我们将使用alpha调制(它的工作原理很像颜色调制)来控制纹理的透明度。...透明度。...首先是setAlpha,它的功能很像颜色调制教程中的setColor。还有setBlendMode,它将控制纹理的混合方式。为了让混合正常工作,你必须对纹理设置混合模式。我们将在后面详细介绍。...现在alpha如何工作的呢?Alpha就是不透明度不透明度越低,我们就越能看透它。就像红色、绿色蓝色的颜色组件一样,当调制它时,它从0到255。最好的理解方式是用一些例子。...就在渲染前面的纹理之前,我们设置它的alpha值。尝试增加/减少alpha值,看看透明度对渲染的影响。

1.2K52

2.3 光栅化阶段

下面阐述的是“如何处理像素,即:给像素赋予颜色值”。...1:消除遮挡面 2:Texture operation,纹理操作,也就是根据像素的纹理坐标,查询对应的纹理值; 3:Blending 混色,根据目前已经画好的颜色,与正在计算的颜色的透明度Alpha...当在屏幕上绘制某个物体时,与每个像素都相关联的有一个 RGB 颜色值和一个 Z 缓冲器深度值,另外一个称为 alpha 值,可以根据需要生成并存储,用来描述给定像 处的物体透明度。...如果 alpha 值为 1.0,则表示物体不透明;如果值为 0,表示 该物体是透明的, 从绘制管线得到一个 RGBA,使用 over 操作符将该值与原像素颜色值进行混合,公式如下: ?...a是透明度值(alpha), ca表示透明物体的颜色, cs表示混合前像素的颜色值, cd 是终计算得到的颜色值。

89530

使用Python给图片添加水印

标签:Python,Pillow库 本文介绍如何使用Python给图像添加水印(文本图片)。前面,我们已经学习了: 使用Python批量给图片添加文本 这里,尝试给图片添加Logo和文本。...每个数组内的值表示每个像素的颜色。例如,在PNG文件中,[255,255,255,255]表示白色但完全不透明。而在JPG文件中,[255,255,255]表示白色的像素。...如上图2所示,PNG支持透明度(即alpha通道),但JPG没有。 这里需要注意: 1.RGB的值为255表示每种颜色的最大值。将所有三个值设为最大值(255,255,255)基本上是白色。...2.alpha通道的值为255表示不透明;而alpha值为0表示完全透明。 Pillow库使JPG文件转换为PNG格式变得非常容易。...我们可以使用putalpha()方法将alpha通道(即第四个整数)添加到JPG图像。注意,参数内部的范围可以是0到255。值为0表示完全透明,即我们不会看到任何东西;255表示不透明。

2.2K30

【第3版emWin教程】第14章 emWin6.x的2D图形库之基本绘图

本章节提供的模拟器演示代码都是可以在模拟器上面运行的,使用方法是将SWIPELIST_Demo.c文件里面的所有内容删掉并将本章节提供的代码复制到SWIPELIST_Demo.c文件即可运行。...颜色信息 STemWin的32位颜色信息: 0-7位:红色 8-15位:绿色 16-23位:蓝色 24-31位:Alpha信息 Alpha值为0表示不透明,值为255表示完全透明。...工作原理 Alpha混合完全自动执行。用户唯一需要做的就是使用函数GUI_EnableAlpha()启用Alpha混合。其中,32位颜色值的最高8位用作Alpha值设置。...; Alpha = (i * 255 / 100); /* 设置透明度 */ GUI_SetAlpha(Alpha); /* 画水平的直线...值设置 如下两个Alpha值设置函数是配套使用的: GUI_SetUserAlpha() 设置Alpha值。

1.1K10

three.js 材质

下面是一些属性: .alphaTest : Float 设置运行alphaTest时要使用alpha值。如果不透明度低于此值,则不会渲染材质。默认值为0。....opacity : Float 在0.0 - 1.0的范围内的浮点数,表明材质的透明度。值0.0表示完全透明,1.0表示完全不透明。...如果材质的transparent属性未设置为true,则材质将保持完全不透明,此值仅影响其颜色。 默认值为1.0。 .polygonOffset : Boolean 是否使用多边形偏移。...可以是"highp", "mediump" "lowp"。默认值为null。 .premultipliedAlpha : Boolean 是否预乘alpha(透明度)值。...该材质使用基于非物理的Lambertian模型来计算反射率。 这可以很好地模拟一些表面(例如未经处理的木材石材),但不能模拟具有镜面高光的光泽表面(例如涂漆木材)。

9.8K50

高真实感、全局一致、外观精细,面向模糊目标的NeRF方案出炉

SOTA 性能; 为了启用卷积机制,该研究提出了高效的采样策略,混合特征融合以及用于 patch-wise 辐射场学习的自监督对抗训练方案; 提出了一种高效的多视图系统,以捕获颜色alpha 图,...受 NeRF 启发,研究者采用了类似的隐式神经辐射场来表征使用多层感知器的场景,以及沿投射射线方向预测密度和颜色值的体融合(volumetric integration)。...不同的是,ConvNeRF 通过空间卷积设计进一步显式编码不透明度,以显著改进神经辐射场重建。...最后,研究者使用一个轻量级的 U-Net 来将特征 patch 解码为视图一致的外观和不透明度输出,并进一步采用了一种 patch-wise 对抗训练方案,以在自监督框架中保留高频外观和不透明度细节。...结果发现,该方法可以从视线不一致的 alpha 蒙版中恢复缺失的部分不透明度,例如猫的胡须,如第一行所示,而 IBOH 则会失败,并出现严重的伪影。

80640

如何为应用选择最合适的图像格式

PNG 24 和 PNG 32又叫真彩色,最多存储2的24次方种颜色,可以达到人眼分辨的极限了;PNG 32中剩余的8位存储的是Alpha 通道的透明色。 ❞ 然后如何生成这些不同格式的图片呢?...PNG透明度 从 Fireworks 8的优化面板里可以看到 PNG 格式存在三种透明格式:不透明、索引透明和 Alpha透明。 ?...PNG 8透明度 从上面那个图里可以看出 PNG 8 是支持这三种不透明格式的。但是 Photoshop 只支持导出不透明和索引透明格式。...在Photoshop 中如果选择 PNG 8,且勾选了透明度,那么导出的图片就是 PNG 8 索引透明,否则就是 PNG 8 不透明。 ?...PNG 24 和 PNG 32 PNG 24 是不透明的;PNG 32 是支持透明的,且是 Alpha 透明。来看下它们在不同浏览器下的表现: ?

1.1K30

Android开发笔记(二)颜色使用

颜色的编码 Android中颜色值的定义是由透明度alpha和RGB(红绿蓝)三原色来定义的,有八位十六进制数与六位十六进制数两种编码,例如八位FFEEDDCC,前两位FF表示透明度,后面两位EE...透明度为FF时表示完全不透明,为00时表示完全透明。六位编码有两种情况,在XML文件中默认不透明(即透明度为FF),在代码中默认透明(即透明度为00),博主经常把透明度弄反了,所以着重记一下。...);,也可以通过Color.rgb(int red, int green, int blue)和Color.argb(int alpha, int red, int green, int blue)来指定颜色...代码中一般不要用六位编码,因为六位编码在代码中默认透明,所以代码用六位颜色跟不设颜色没什么区别。...如果在代码中使用colors.xml中设置的颜色,可按如下方式获取 setTextColor(getResources().getColor(R.color.black));

54150
领券