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

建设商城网站的书籍钱网站建设企业官网源码

建设商城网站的书籍钱,网站建设企业官网源码,沈阳 建设工程 招标中心网站,长春市住房和城乡建设局网站1 前言 本文主要介绍 Filament 的材质系统#xff0c;官方介绍详见 → Filament Materials Guide。材质系统中会涉及到一些空间和变换的知识点#xff0c;可以参考#xff1a;【Unity3D】空间和变换、【Unity3D】Shader常量、变量、结构体、函数、【OpenGL ES】MVP矩阵变换、…1 前言 本文主要介绍 Filament 的材质系统官方介绍详见 → Filament Materials Guide。材质系统中会涉及到一些空间和变换的知识点可以参考【Unity3D】空间和变换、【Unity3D】Shader常量、变量、结构体、函数、【OpenGL ES】MVP矩阵变换、【OpenGL ES】透视变换原理。 需要注意的是Unity 世界空间是左手坐标系OpenGL 和 Filament 的世界空间是右手坐标系Filament 的世界空间坐标轴如下。 红 X, 绿 Y, 蓝 Z 读者如果对 Filament 不太熟悉请回顾以下内容。 Filament环境搭建绘制三角形绘制矩形绘制圆形绘制立方体纹理贴图立方体贴图6张图加载obj和fbx模型自定义Blinn Phong光照模型基于物理的光照PBR壁纸 2 材质结构 材质的格式是一种松散地基于 JSON 的格式Filament 官方称之为 JSONish 格式。在顶层材质定义由 JSON 对象表示的 3 个不同块组成如下。其中vertex 块是可选的必须包含 material 和 fragment 块。 material {// 材质属性 }vertex {// 顶点着色器(可选) }fragment {// 片元着色器 } JSONish 格式具有以下特点。 JSON 格式为【key : value】JSONish 格式为【key : value】当字符串包含空格时需要引号允许使用单行 C 样式的注释key 区分大小写value 不区分大小写。 2.1 材质属性material 材质属性material中可以定义材质名name、外部参数parameters、顶点属性参数requires、光照模型shadingModel、混合模式blending等。 material {name : Textured material,parameters : [ // 外部参数{type : sampler2d,name : texture},{type : float,name : metallic},{type : float,name : roughness}],requires : [ // 顶点属性uv0],shadingModel : lit, // 光照模型blending : opaque // 混合模式 } parameters外部参数纹理类型参数可以通过 materialParams_xxx 访问如 materialParams_texture其他类型参数可以通过 materialParams.xxx 访问如 materialParams.metallic。requires顶点属性参数会参与光栅化取值有uv0、uv1、color、position、tangents、custom0 ~ custom。shadingModel光照模型取值有 lit、subsurface、cloth、unlit、specularGlossiness默认取 lit。blending混合模式取值有opaque、transparent、fade、add、multiply、screen、masked默认取 opaque。 2.2 顶点着色器vertex 顶点着色器vertex中可以对顶点的属性进行变换如下。 vertex {void materialVertex(inout MaterialVertexInputs material) {float3 p getPosition().xyz;float3 u mulMat4x4Float3(getViewFromClipMatrix(), p).xyz;material.eyeDirection.xyz mulMat3x3Float3(getWorldFromViewMatrix(), u);} } 2.3 片元着色器块fragment 片元着色器fragment中可以计算光照模型所需的参数如下。 fragment {void material(inout MaterialInputs material) {prepareMaterial(material);material.baseColor texture(materialParams_texture, getUV0());material.metallic materialParams.metallic;material.roughness materialParams.roughness;} } 其中materialParams_texture、materialParams.metallic、materialParams.roughness 是材质属性中定义的外部参数。 3 输入结构 顶点着色器的输入结构体如下。 struct MaterialVertexInputs {float4 color; // if the color attribute is requiredfloat2 uv0; // if the uv0 attribute is requiredfloat2 uv1; // if the uv1 attribute is requiredfloat3 worldNormal; // only if the shading model is not unlitfloat4 worldPosition; // always available (see note below about world-space)mat4 clipSpaceTransform; // default: identity, transforms the clip-space position, only available for vertexDomain:device// variable* names are replaced with actual namesfloat4 variable0; // if 1 or more variables is definedfloat4 variable1; // if 2 or more variables is definedfloat4 variable2; // if 3 or more variables is definedfloat4 variable3; // if 4 or more variables is defined }; 片元着色器的输入结构体如下。 struct MaterialInputs {float4 baseColor; // default: float4(1.0)float4 emissive; // default: float4(0.0, 0.0, 0.0, 1.0)float4 postLightingColor; // default: float4(0.0)// no other field is available with the unlit shading modelfloat roughness; // default: 1.0float metallic; // default: 0.0, not available with cloth or specularGlossinessfloat reflectance; // default: 0.5, not available with cloth or specularGlossinessfloat ambientOcclusion; // default: 0.0// not available when the shading model is subsurface or clothfloat3 sheenColor; // default: float3(0.0)float sheenRoughness; // default: 0.0float clearCoat; // default: 1.0float clearCoatRoughness; // default: 0.0float3 clearCoatNormal; // default: float3(0.0, 0.0, 1.0)float anisotropy; // default: 0.0float3 anisotropyDirection; // default: float3(1.0, 0.0, 0.0)// only available when the shading model is subsurface or refraction is enabledfloat thickness; // default: 0.5// only available when the shading model is subsurfacefloat subsurfacePower; // default: 12.234float3 subsurfaceColor; // default: float3(1.0)// only available when the shading model is clothfloat3 sheenColor; // default: sqrt(baseColor)float3 subsurfaceColor; // default: float3(0.0)// only available when the shading model is specularGlossinessfloat3 specularColor; // default: float3(0.0)float glossiness; // default: 0.0// not available when the shading model is unlit// must be set before calling prepareMaterial()float3 normal; // default: float3(0.0, 0.0, 1.0)// only available when refraction is enabledfloat transmission; // default: 1.0float3 absorption; // default float3(0.0, 0.0, 0.0)float ior; // default: 1.5float microThickness; // default: 0.0, not available with refractionType solid } 4 数据类型 NameGLSL typeDescriptionbool2bvec2A vector of 2 booleansbool3bvec3A vector of 3 booleansbool4bvec4A vector of 4 booleansint2ivec2A vector of 2 integersint3ivec3A vector of 3 integersint4ivec4A vector of 4 integersuint2uvec2A vector of 2 unsigned integersuint3uvec3A vector of 3 unsigned integersuint4uvec4A vector of 4 unsigned integersfloat2float2A vector of 2 floatsfloat3float3A vector of 3 floatsfloat4float4A vector of 4 floatsfloat4×4mat4A 4×4 float matrixfloat3×3mat3A 3×3 float matrix 5 材质函数 5.1 Math NameTypeDescriptionPIfloatπHALF_PIfloatπ / 2saturate(float x)float将 x 约束在 0 ~ 1 之间pow5(float x)floatx ^ 5sq(float x)floatx ^ 2max3(float3 v)float获取向量中最大的分量mulMat4×4Float3(float4×4 m, float3 v)float4m * vmulMat3×3Float3(float4×4 m, float3 v)float4m * v 5.2 Matrices NameTypeDescriptiongetViewFromWorldMatrix()float4×4[世界空间-观察空间]的变换矩阵VgetWorldFromViewMatrix()float4×4[观察空间-世界空间]的变换矩阵VgetClipFromViewMatrix()float4×4[观察空间-裁剪空间]的变换矩阵PgetViewFromClipMatrix()float4×4[裁剪空间-观察空间]的变换矩阵PgetClipFromWorldMatrix()float4×4[世界空间-裁剪空间]的变换矩阵VPgetWorldFromClipMatrix()float4×4[裁剪空间-世界空间]的变换矩阵(VP)getUserWorldFromWorldMatrix()float4×4[世界空间-用户世界空间]的变换矩阵getWorldFromModelMatrix()float4×4[模型空间-世界空间]的变换矩阵MVertex onlygetWorldFromModelNormalMatrix()float3×3[模型空间-世界空间]的法线变换矩阵Vertex only 5.3 Frame constants NameTypeDescriptiongetResolution()float4width, height, 1 / width, 1 / height单位pixelsgetWorldCameraPosition()float3相机的世界空间坐标getWorldOffset()float3获取 api 级世界空间的位置已弃用使用 getUserWorldPosition 替代getTime()float获取当前时间范围0 ~ 1单位sgetUserTime()float4time, (double)time - time, 0, 0getUserTimeMod(float m)float获取当前时间范围0 ~ m单位sgetExposure()float照相机的曝光度getEV100()float相机在 ISO 100 下的曝光度 5.4 Vertex only NameTypeDescriptiongetPosition()float4获取模型空间顶点坐标getCustom0() to getCustom7()float4获取模型的 Custom0 ~ Custom7 的值getVertexIndex()int获取顶点的索引 5.5 Fragment only NameTypeDescriptiongetWorldTangentFrame()float3×3世界空间列向量tangent、bi-tangent、normal如果材质没有计算凹凸贴图的切空间法线或者材质不是各向异性的那么在这个矩阵中只有法线是有效的。getWorldPosition()float3片元的世界空间坐标getUserWorldPosition()float3片元的用户世界空间坐标getWorldViewVector()float3世界空间下片元指向相机的单位方向向量getWorldNormalVector()float3世界空间下经凹凸映射后的片元的单位法线向量必须在 prepareMaterial() 之后使用)getWorldGeometricNormalVector()float3世界空间下凹凸映射前的片元的单位法线向量 (可以在 prepareMaterial() 之前使用)getWorldReflectedVector()float3view 向量关于法线的反向量必须在 prepareMaterial() 之后使用getNormalizedViewportCoord()float3标准化的用户视口位置即 NDC 坐标标准化为 [0,1] 的位置[1,0] 的深度可以在prepareMaterial() 之前使用。因为用户视口比实际的物理视口小所以在物理视口的不可见区域中这些坐标可以为负或大于 1。getNdotV()float获取法线向量与观察向量的点积即dot(normal, view)返回结果严格大于 0必须在 prepareMaterial() 之后使用getColor()float4获取片元经光栅化插值后的颜色当 required 中包含 color 时才可用getUV0()float2获取 uv0 纹理坐标当 required 中包含 uv0 时才可用getUV1()float2获取 uv1 纹理坐标当 required 中包含 uv1 时才可用getMaskThreshold()float获取遮罩阈值当 blending 设置为 masked 才可用inverseTonemap(float3)float3将逆色调映射操作应用于指定的线性 sRGB 颜色并返回线性 sRGB 颜色。此操作可能是近似的并且与 “Filmic” 色调映射操作一起使用效果最好inverseTonemapSRGB(float3)float3将逆色调映射操作应用于指定的非线性 sRGB 颜色并返回线性 sRGB 颜色。此操作可能是近似的并且与 “Filmic” 色调映射操作一起使用效果最好luminance(float3)float计算指定的线性 sRGB 颜色的亮度ycbcrToRgb(float, float2)float3将亮度和 CbCr 对转换为 sRGB 颜色uvToRenderTargetUV(float2)float2转换 UV 坐标以允许从 RenderTarget 中采样 6 光照模型Lighting model 在 material 块中通过 shadingModel 属性配置光照模型取值主要有lit、subsurface、cloth、unlit、specularGlossiness默认取 lit。 6.1 lit model lit model 官方介绍见 → litmodel可以配置的参数如下。 PropertyTypeRangeNoteDefinitionbaseColorfloat4[0..1]Linear RGB非金属表面的漫射反照率和金属表面的镜面颜色metallicfloat[0..1]0 or 1表面是介电0还是导体1roughnessfloat[0..1]感知表面的平滑度1或粗糙0reflectancefloat[0..1]Prefer values 0.35表面正入射菲涅耳反射率控制了反射的强度sheenColorfloat3[0..1]Linear RGB光泽层的强度sheenRoughnessfloat[0..1]光泽层的平滑度或粗糙度clearCoatfloat[0..1]0 or 1透明涂层的强度clearCoatRoughnessfloat[0..1]可感知的透明涂层的平滑度或粗糙度anisotropyfloat[−1..1]当该值为正值时各向异性在切线方向上在正切或双切方向上各向异性的数量anisotropyDirectionfloat3[0..1]Linear RGB在切空间中编码方向向量切线空间的局部曲面方向ambientOcclusionfloat[0..1]定义一个表面点可以接触到多少环境光它是一个介于 0 和 1 之间的每像素阴影因子normalfloat3[0..1]Linear RGB在切空间中编码方向向量使用凹凸贴图法线贴图来扰动表面的细节法线。bentNormalfloat3[0..1]Linear RGB在切空间中编码方向向量指向平均不包含方向的法线可以用来改善间接照明的质量clearCoatNormalfloat3[0..1]Linear RGB在切空间中编码方向向量使用凹凸贴图法线贴图来扰动透明涂层的细节法线emissivefloat4 rgb[0..n], a[0..1] Linear RGBalpha 编码曝光权重额外的漫射反照率来模拟发射表面如霓虹灯等这个属性在带有 bloom 通道的 HDR 管道中非常有用postLightingColorfloat4[0..1]Linear RGB额外的颜色可以与照明计算的结果混合见 postLightingBlendingiorfloat[1..n]可选通常由反射率推断折射率折射物的折射率或作为反射率的替代品transmissionfloat[0..1]定义了有多少电介质的漫射光通过物体传播它定义了物体的透明度absorptionfloat3[0..n]折射率物体的吸收系数microThicknessfloat[0..n]折射率物体的薄层厚度thicknessfloat[0..n]折射物体的固体体积的厚度 6.2 subsurface model subsurface model 官方介绍见 → subsurfacemodel官方文档只留着标题无内容介绍。 6.3 cloth model cloth model 官方介绍见 → clothmodel可以配置的参数如下。 PropertyTypeRangeNoteDefinitionsheenColorfloat3[0..1]Linear RGB高光色调创建双色高光织物默认值sqrt(baseColor)subsurfaceColorfloat3[0..1]Linear RGB通过材料散射和吸收后的漫射色着色 6.4 unlit model unlit model 官方介绍见 → unlitmodel可以配置的参数如下。 PropertyTypeRangeNoteDefinitionbaseColorfloat4[0..1]Linear RGB表面漫反射色emissivefloat4 rgb[0..n], a[0..1] Linear RGBalpha 编码曝光权重额外的漫射颜色来模拟发射表面该属性在带有 bloom pass 的 HDR 管道中非常有用postLightingColorfloat4[0..1]Linear RGB额外的颜色与基色和发射色混合 6.5 specularGlossiness specularGlossiness 官方介绍见 → specularglossiness可以配置的参数如下。 PropertyTypeRangeNoteDefinitionbaseColorfloat4[0..1]Linear RGB表面漫反射色specularColorfloat3[0..1]Linear RGB高光色调默认为黑色glossinessfloat[0..1]Inverse of roughness光泽度默认为 0 7 混合和透明Blending and transparency 7.1 blending 在 material 块中通过 blending 属性配置混合模式取值有opaque、transparent、fade、add、multiply、screen、masked默认取 opaque,官方介绍见 → blending。 opaque不透明模式混合被禁用材质输出的 alpha 通道被忽略。transparent透明模式启用混合材质输出的是与渲染目标通过 alpha 混合的使用 Porter-Duff 的 source over 规则这种混合模式假定预先乘以 alph。fade半透明模式启用混合表现透明效果但透明度也应用到镜面反射光照在 transparent 模式下材质的 alpha 值只应用到漫射光照fade 混合模式对于淡化被照亮的物体很有用。add叠加模式启用混合材质的输出被叠加到渲染目标的内容中。multiply累乘模式启用混合材质的输出与渲染目标的内容相乘使内容变暗。screen屏幕模式启用混合与 multiply 的效果相反渲染目标的内容会变亮。masked遮罩模式禁用混合这种混合模式启用 alpha 遮罩材质输出的 alpha 通道定义了片元是否被丢弃。此外ALPHA_TO_COVERAGE 对于非半透明视图是启用的有关更多信息请参阅 maskThreshold 部分。 material {blending : opaque } 7.2 postLightingBlending postLightingColor 属性定义了如何将 postLightingColor 材质属性与光照计算结果混合官方介绍见 → postlightingblending。取值主要有opaque、transparent、add、Screen默认取值transparent。 material {postLightingBlending : add } 7.3 transparency transparency 控制透明物体的渲染方式它仅在混合模式不是 opaque 且 refractionMode 为 none 时有效这些方法都不能准确地渲染凹形物体但在实践中它们往往足够好官方介绍见 → transparency。取值主要有default、twoPassesOneSide、twoPassesTwoSides默认取值default。 default透明物体正常呈现遵循剔除模式。twoPassesOneSide透明物体首先在深度缓冲区中渲染然后再在颜色缓冲区中渲染遵循剔除模式这实际上只呈现了透明物体的一半。twoPassesTwoSides透明物体在颜色缓冲区中渲染两次第一次渲染背面然后渲染正面该模式允许渲染两面同时减少或消除排序问题twoPassesTwoSides 可以与 doubleSided 结合使用效果更好。 material {transparency : twoPassesOneSide } 7.4 maskThreshold 当混合模式设置为 masked 时maskThreshold 用于控制片元不被丢弃的最小 alpha 值当混合模式未被设置为 masked 时maskThreshold 将被忽略官方介绍见 → maskThreshold。取值为 0.0 ~ 1.0 之间的浮点数默认取值0.4​​​​​​。 material {blending : masked,maskThreshold : 0.5 } 7.5 refractionMode refractionMode 用于控制折射模式官方介绍见 → refractionMode。取值主要有none、cubemap、screenspace默认取值none。当 refractionMode 设置为非 none 时才激活折射。 cubemap 模式只使用 IBL cubemap 作为折射源这是非常有效的没有场景对象被折射只有在 cubemap 中编码的远处环境被折射该模式对于对象查看器来说是足够的。screenspace 模式采用更先进的屏幕空间折射算法该算法允许场景中不透明的物体被折射。 在 cubemap 模式中假定折射光线从物体的中心发出厚度参数仅用于计算吸收而对折射本身没有影响。在 screenspace 模式中假定折射光线在离开折射介质时平行于观看方向。 material {refractionMode : cubemap, } 7.6 refractionType refractionType 用于设置折射模型官方介绍见 → refractionType。取值主要有solid、thin默认取值solid。当 refractionMode 设置为非 none 时 refractionType 才会生效。 solid 模型用于厚的物体如水晶球、冰块或雕塑thin 模型用于薄的物体如窗户、装饰球或肥皂泡。 solid 模型假定所有的折射物体都是与入射点相切且半径厚度的球体。thin 模型假定所有的折射物体都是平面的、薄的、均匀厚度的。 material {refractionMode : cubemap,refractionType : thin, } 8 光栅化Rasterization 8.1 culling culling 用于控制需要剔除哪些三角形官方介绍见 → culling。取值主要有none、front、back、frontAndBack默认取值back。 none不剔除渲染双面。front剔除正面三角形渲染背面。back剔除背面三角形渲染正面。frontAndBack正面和背面全部剔除。 material {culling : none } 8.2 colorWrite colorWrite 用于控制开启 / 禁用写入颜色缓冲区官方介绍见 → colorWrite。取值有true、false默认取值true。 material {colorWrite : false } 8.3 depthWrite depthWrite 用于控制开启 / 禁用写入深度缓冲区官方介绍见 → depthWrite。取值有true、false不透明物体默认取值true透明物体默认取值false。 material {depthWrite : false } 8.4 depthCulling depthCulling 用于控制开启 / 禁用深度测试 官方介绍见 → depthCulling。取值有true、false默认取值true。 当深度测试被禁用时用此材质渲染的物体将始终出现在其他不透明物体的前面。 material {depthCulling : false } 8.5 doubleSided doubleSided 用于控制开启 / 禁用双面渲染官方介绍见 → doubleSided。取值有true、false默认取值false。当设置为 true 时culling 自动设置为 none。 如果三角形是面向背面的则三角形的法线将翻转为面向正面。当显式设置为 false 时这允许在运行时切换双面性。 material {doubleSided : true } 8.6 alphaToCoverage alphaToCoverage 用于控制开启 / 禁用 alpha 覆盖官方介绍见 → alphaToCoverage。取值有true、false默认取值false。 当覆盖的 alpha 被启用时片元的覆盖是从它的 alpha 派生出来的。此属性仅在启用 MSAA 时才可用。注意将混合模式设置为 masked 会自动启用 alpha 覆盖如果不希望这样做可以通过将 alpha 的覆盖设置为 false 来取消此行为。 material {blending : masked,alphaToCoverage : false } 9 光照属性Lighting 9.1 reflections reflections 用于控制材质的镜面反射源官方介绍见 → reflections。取值有default、screenspace默认取值default。 当 reflections 设置为 default 时反射仅来自基于图像的光照image-based lightsIBL当此 reflections 设置为 screenspace 时反射除了来自 IBL 之外还来自屏幕空间的颜色缓冲区。 material {reflections : screenspace } 9.2 shadowMultiplier shadowMultiplier 用于控制开启 / 禁用阴影该属性仅在 unlit 光照模型下才可用官方介绍见 → shadowMultiplier。取值有true、false默认取值false。 当 shadowMultiplier 设置为 true 时材质计算的最终颜色需要乘以阴影因子或可见性它允许创建透明的且接收阴影投射的物体如AR 中不可见的地面它仅接收直射光directional lights的阴影。 material {shadingModel : unlit,shadowMultiplier : true,blending : transparent } 9.3 transparentShadow transparentShadow 用于控制开启 / 禁用透明阴影官方介绍见 → transparentShadow。取值有true、false默认取值false。 当 shadowMultiplier 设置为 true 时Filament 使用抖动模式dithering pattern模拟透明阴影它们在方差阴影地图VSM和模糊启用时效果最好。阴影的不透明度直接来源于材质的 baseColor 属性的 alpha 通道透明阴影可以在不透明的物体上启用使它们与不透明的折射 / 透射物体兼容。 material {transparentShadow : true,blending : transparent }fragment {void material(inout MaterialInputs material) {prepareMaterial(material);material.baseColor texture(materialParams_baseColor, getUV0());} } 9.4 clearCoatIorChange clearCoatIorChange 用于控制开启 / 禁用清除折射率变化图层官方介绍见 → clearCoatIorChange。取值有true、false默认取值true。 当 clearCoatIorChange 设置为 true 时会添加一个清除图层它考虑到折射率IoR的变化来修改底层的镜面颜色这会使 baseColor 变暗。当此效果被禁用时baseColor 保持不变。 material {clearCoatIorChange : false } 9.5 multiBounceAmbientOcclusion multiBounceAmbientOcclusion 用于控制开启 / 禁用多反弹环境遮挡官方介绍见 → multiBounceAmbientOcclusion。取值有true、false默认取值false。 当将环境遮挡ambient occlusion应用于基于图像的光照image-based lightingIBL时多反弹环境遮挡multi-bounce ambient occlusion考虑了相互反射。开启此功能可避免遮挡区域过度变暗。它还考虑了表面颜色来生成彩色环境遮挡。 material {multiBounceAmbientOcclusion : true } 9.6 specularAmbientOcclusion specularAmbientOcclusion 用于控制开启 / 禁用多反弹环境遮挡官方介绍见 → multiBounceAmbientOcclusion。取值有none、simple、 bentNormals默认取值none。 静态环境遮挡贴图和动态环境遮挡贴图SSAO 等适用于漫射间接光照。当将此属性设置为非 none 时一个新的环境遮挡项将从表面粗糙度中衍生出来并应用于镜面间接光照。这种效果有助于消除不需要的镜面反射。当这个值设置为 simple 时Filament 使用一种便宜但近似的方法来计算高光环境遮挡项。如果将此值设置为 bentNormals, Filament 将使用更精确但更昂贵的方法。 material {specularAmbientOcclusion : simple } 10 抗锯齿Anti-aliasing 10.1 specularAntiAliasing specularAntiAliasing 用于控制开启 / 禁用镜面抗锯齿官方介绍见 → specularAntiAliasing。取值有true、false默认取值false。 当一个对象远离相机开启抗锯齿可用减少镜面锯齿并保留镜面高光的形状。这种抗锯齿方案对光滑材料低粗糙度特别有效但增加了渲染成本。抗锯齿效果的强度可以使用另外两个属性来控制specularAntiAliasingVariance 和 specularAntiAliasingThreshold。 material {specularAntiAliasing : true } 10.2 specularAntiAliasingVariance specularAntiAliasingVariance 用于设置应用镜面抗锯齿时使用的过滤器内核的屏幕空间方差官方介绍见 → specularAntiAliasingVariance。取值类型是 float 型取值范围是 0 ~ 1默认取值0.15。 较高的 specularAntiAliasingVariance 值将增加过滤器的效果但可能增加不需要的区域的粗糙度。 material {specularAntiAliasingVariance : 0.2 } 10.3 specularAntiAliasingThreshold specularAntiAliasingThreshold 用于设置应用镜面抗锯齿时抑制估计误差的夹持阈值clamping threshold官方介绍见 → specularAntiAliasingThreshold。取值类型是 float 型取值范围是 0 ~ 1默认取值0.2。 当设置为 0 时镜面抗锯齿被禁用。 material {specularAntiAliasingThreshold : 0.1 } 11 颜色处理Handling colors 11.1 Linear colors 线性颜色空间的介绍见 → 【Unity3D】伽马校正Filament 在线性颜色空间中使用 RGB 颜色官方介绍见 → linearcolors。 如果颜色数据来自纹理请确保使用 sRGB 纹理以从 sRGB 自动进行硬件转换为线性。如果颜色数据作为材质的参数传递可以通过在每个颜色通道上运行以下算法将其从 sRGB 转换为线性。 float sRGB_to_linear(float color) {return color 0.04045 ? color / 12.92 : pow((color 0.055) / 1.055, 2.4); } 可以使用以下两个更便宜但不太准确的方法。 // Cheaper linearColor pow(color, 2.2); // Cheapest linearColor color * color; 11.2 Pre-multiplied alpha 如果一种颜色的 RGB 分量都乘以 alpha 通道那么它使用了预乘 alpha官方介绍见 → pre-multipliedalpha。 // Compute pre-multiplied color color.rgb * color.a; 如果颜色是从纹理中取样的可以简单地确保纹理数据在上传时进行了预乘。在 Android 上从 Bitmap 上传的任何纹理默认都会进行预乘。
http://www.zqtcl.cn/news/306008/

相关文章:

  • html5网站源代码凡科互动app下载
  • asp评价网站开发文档福州做网站的哪家好
  • 合肥网站建设方案优化写作网站大全
  • 专门提供做ppt小素材的网站网站定位
  • 临沂市建设局兰山区网站wordpress 去除下划线
  • 如何做一张图片的网站关于实验室建设的英文网站
  • 网站建设文本居中代码山东网站推广营销设计
  • 山东桓台建设招投标网站北京建设信息港网站
  • 为什么网站要域名个人养老金制度最新消息
  • 公众号开发是不是网站开发公司网站建设分录
  • 云南省住房建设厅网站代理二级分销系统
  • 四川建设人才培训网站临沂网站制作页面
  • 用vue做网站建设工程合同属于什么合同
  • 赶集的网站怎么做广告投放报价
  • php 家政网站白嫖云服务器
  • 长春网站关键词推广优秀网站建设哪个公司好
  • php实战做网站视频教程站长工具网站测速
  • 当下网站建设常见的网址有哪些
  • 洪雅网站建设事业单位门户网站建设包含内容
  • 外网如何查看局域网建设的网站区块链开发工程师要求
  • 网站首页三张海报做多大怎么做网上直营店网站
  • 网站制作新手教程视频省建设厅网站安全生产标准化
  • 自动建设网站系统阿里云虚拟主机多网站
  • 区块链app排名网站seo其应用
  • 海口网站建设咨询一般网站建设需求有哪些方面
  • 免费网站建设朋友交流模板王网站
  • wordpress不同分类不同广告 文章属于不同分类网站 优化手机版
  • 淮安市建设银行网站首页王也是谁
  • 好用的网站管理系统给wordpress程序提速
  • 网页设计模板的网站网站开发包括哪些