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

ALPHA ZERO对象棋的启示

这在围棋界掀起了一个不大不小的波澜。之所以不大,是因为樊麾并不能代表人类最高水平。另外当时人们对ALPHA GO知之甚少,仅从棋谱上看,仍有不小的瑕疵。...2016年3月9日至3月15日,ALPHA GO在韩国首尔以4:1的战绩战胜人类顶尖棋手,韩国围棋职业棋手李世石九段。...如果说战胜樊麾只是ALPHA GO的小试牛刀,人们对ALPHA GO的实力还有些许怀疑,那么这一战就是真正征服了围棋,人类智力游戏的最后堡垒被攻克。...简单的说象棋的人工智能是以逻辑为基础的机器,围棋的人工智能是以直觉为基础的机器。 如今谷歌公司最新通用算法ALPHA ZERO,不仅从零开始学会了下围棋,同时也可以从零开始学会下国际象棋。...经过12个小时自我对弈的模拟训练,ALPHA ZERO战胜了世界顶级国际象棋程序Stockfish(鳕鱼)。前世界棋王卡斯帕罗夫评论道,ALPHA ZERO是用一种近似人的方式来下象棋。

1.7K50

用 OpenGL 对视频帧内容进行替换

,遮罩层的要求就是对于要替换的内容区域是非透明的,其他区域透明,将遮罩层和原图像进行融合,最后得到的就是一帧被替换过内容图像了,再将处理过的一帧图像进行编码,重新编码成新的视频内容。...带透明度的遮罩图 接下来的事情就是将两张图片融合,分别介绍基于着色器和颜色混合来替换内容。...使用着色器进行替换 使用颜色混合进行替换 使用颜色混合的方式不像着色器那样简单粗暴,要么抛弃某些片元,要么直接覆盖了。 它是根据一定的计算规则,来计算两个颜色之间的融合。...4 glDisable(GL_BLEND) 混合因子的设置使得如果遮罩图是透明的,使用被遮罩图的颜色,如果不是透明的,使用遮罩图的颜色,这样就不是直接抛弃某些片元了。...,如果采用了颜色混合就执行颜色混合的绘制,否则采用着色器的绘制,也体现了就是将遮罩图直接覆盖在原图上的思想。

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

    绘图-视图遮罩MaskView的使用

    ---- 在UIView中有一个maskView属性,我们可以利用这个属性很方便的做出一些有意思的效果 这个属性在iOS8之后开始使用,用来表示视图的遮罩。 ?...(一个通过alpha通道来掩盖一个view的内容的可选view。) 注意: maskView的颜色不显示,最终效果图怎么显示只跟maskView每个point的alpha相关。...可以这样理解,是将maskView每个point的alpha赋值给View的重叠部分相对应的point,这样view的重叠每个point都有个alpha值了,view重叠部分就可能显示多种透明色。...效果1.png 途中圆圈羽化的边缘是用的图片填充,对CALayer内容的图片填充才有的羽化边缘的形状,才出的这样的效果,这其实是 maskLayer的使用了,具体可以参考我的代码查看。...,layer的mask是种位掩蔽,在shapeLayer的填充区域中,alpha值不为零的部分,self会被绘制;alpha值为零的部分,self不会被绘制 可以把任何UIView切成任意形状的代码:

    2.1K20

    Unity通用渲染管线(URP)系列(八)——复杂的贴图(Masks, Details, and Normals)

    该贴图称为遮罩贴图,其各个通道遮盖了不同的着色器属性。我们使用与Unity的HDRP相同的格式,后者是MODS映射。此代表金属,遮挡,细节和平滑度,以该顺序存储在RGBA通道中。...(使用中的平滑度贴图) 2.5 遮挡 遮罩的G通道包含遮挡数据。这个想法是,诸如间隙和孔之类的较小的凹陷区域大部分会被对象的其余部分遮盖,但是如果这些特征由纹理表示,它就会被光照忽略。...而且,在使Mip贴图淡化时,Unity会忽略Alpha通道,因此该通道中的数据将不会正确变淡。因此,需要在Unity外部或使用脚本自行生成Mip映射。...通过添加一些着色器功能来控制着色器使用哪些贴图,可以避免不必要的工作。Unity的着色器会根据在编辑器中分配的贴图自动执行此操作,但是我们将通过显式切换来控制它。...(启用了可选的法线贴图) 添加一个匹配着色器属性的Pragma到CustomLit通道中, 其他Pass均不需要映射法线,因此不应获得该功能。 ?

    4.4K40

    Unity通用渲染管线(URP)系列(六)——阴影遮罩(Shadow Masks)

    因为所有关于阴影的事情都是Shadows类的工作。我们将使用着色器关键字来控制是否使用阴影遮罩。...将其对应的多重编译指令添加到Lit着色器的CustomLit传递中。 ? 1.3 阴影遮罩数据 在着色器端,我们需要知道是否使用了阴影遮罩,如果使用的话,烘焙的阴影是什么。...在这种情况下,我们需要将PerObjectData.ShadowMask添加到每个对象的数据中。 ? ? (采样阴影遮罩) 为什么每次更改着色器代码时Unity都会烘焙灯光?...1.4 遮挡探针 我们可以看到,阴影遮罩已正确应用于光照对象上了。但是还看到,动态对象并没有预期的阴影遮罩数据。因为他们使用的是光探针而不是光贴图。...使用任何一种模式时,两个版本的GetBakedShadow都应选择遮罩。 ? 最后,当阴影遮罩始终处于活动状态时,MixBakedAndRealtimeShadows现在必须使用其他方法。

    4.9K32

    Unity通用渲染管线(URP)系列(十四)——多相机(Camera Blending & Rendering Layers)

    (Bloom会影响透明区域) 1.3 分层 Alpha 当前的分层方法仅在我们的着色器产生可用于相机图层混合的有意义的Alpha值时才有效。...通过在颜色混合模式之后添加逗号和alpha模式,我们可以为Alpha通道与颜色分别配置着色器的混合模式。为我们的Lit和Unlit着色器的常规Pass执行此操作。 ?...只要使用适当的alpha值,此方法就起作用,这通常意味着写入深度的对象也应始终产生1的alpha。...(使用预乘alpha混合自定义UI着色器的Raw UI图像。) 在哪里可以找到默认的UI着色器源代码? 转到Unity的档案下载,找到所需的Unity版本,然后从任一下拉菜单中选择“内置着色器”。...在CPU端,调整我们的Lighting类中的标识符和数组名称以使其匹配。然后还复制灯光的渲染层遮罩。我们从SetupDirectionalLight开始,它现在还需要直接访问Light对象。

    9K22

    基础渲染系列(十)——更复杂的复合材质

    1.5 合并贴图 由于我们仅使用遮挡图的一个通道,即G通道。用于电路的金属图存储在R通道中,平滑度存储在alpha通道中。这意味着我们可以将所有三个贴图组合为一个纹理。下面是一张这样的贴图。 ?...(细节遮罩) Unity的标准着色器使用细节蒙版的Alpha通道,因此我们也使用该通道。上图将所有四个颜色通道设置为相同的值。 将此贴图的属性添加到我们的着色器。 ?...(细节遮罩) 3 更多的关键字 我们一直在使用着色器功能来启用着色器代码,该代码可以采样并在我们的光照方程中包含各种贴图。Unity的标准着色器也可以做到这一点。这就是超级着色器的想法。...这个假设更令人质疑,因为许多材质没有使用色调,而是使用默认的白色。可以为色调添加一个关键字,仅当色调设置为除白色以外的其他颜色时才启用它。...foreach是for循环的方便替代方法。与常规的for循环相比,它具有一些开销,因为它创建了一个临时的迭代器对象。因此,我永远不会在经常执行的应用程序代码或编辑器代码中使用它。

    2.4K30

    OpenGL 滤镜进阶(缩放+灵魂出窍+抖动+闪白+毛刺+幻觉)

    放大1.3倍时的纹理映射关系如下: 片元着色器 SoulOut.fsh 抖动 原理 片元着色器中 颜⾊偏移 + 微弱的放大效果 片元着色器算法: 根据当前时间戳计算当前进度的百分比 计算当前进度对应的颜色偏移...计算当前进度对应的缩放比例 获取放大后的纹理坐标 将放大后的纹理纹素进行颜色偏移,获得3组颜色 从3组颜色中分别获取RGBA的值 片元着色器 Shake.fsh 闪白 原理 片元着色器 :添加⽩色图层...,⽩色图层的透明度随着时间变化 片元着色器算法 通过mod函数计算当前时间戳对应的时间周期 设置一个白色遮罩 计算白色遮罩的振幅,振幅范围是[0,0, 1.0] 获取原图纹理的纹素,并与白色遮罩颜色混合...颜色混合的方式有多种,常用的一般是mix函数或者默认的混合方程式:mask*(1-alpha) + weakMask*alpha 片元着色器 ShineWhite.fsh 毛刺 原理 : 撕裂 +...片元着色器算法 通过mod函数计算当前时间周期 设置放大倍数 计算放大后的纹理坐标 获取转全过程中像素点的纹素 通过for循环来新建图层,即幻影颜色 获取由原始图层和新建层叠加的颜色 片元着色器 Vertigo.fsh

    1.5K20

    Unity高级开发-Shader开发(3)-Shader编程

    使用片段着色器的主要目的是可以在比较低的层级上进行更复杂(或者针对目标设备更高效)的开发。 2、shader的结构: 着色器:本身就是一段代码,专业性非常强的代码。就是指着色器有哪些输入。...Pass{ // Pass里面就是整段渲染过程的实现 } } RenderState 渲染状态 通道设置显示硬件的各种状态,例如能打开alpha混合,使用雾等...Opaque: 不透明,最常用(带法线贴图的,自发光的,反射,地形) Transparent:半透明物体(粒子,字体) TransparentCutout:透明遮罩shader Background...VertexLM:用于顶点光照渲染,当物体有光照映射的时候使用顶点光照渲染 ShadowCaster:将物体当作阴影产生者来渲染 ShadowCollector:正向渲染对象的路径,将对象阴影收集到屏幕空间缓冲区中...Pragma Target 2.0 与Target 3.0,Target 3.5的区别 如果想让我们写的着色器代码在不同的GPU运行,那么使用2.0就好,这是通用的。

    1.8K20

    基础渲染系列(十七)——混合光照

    这意味着动态对象没有阴影,而光照贴图的对象没有烘焙阴影。 不使用阴影遮罩时,它会执行与以前相同的淡化处理。否则,这取决于我们是否要进行阴影混合,这会在后面介绍。...2.3 使用阴影遮罩 G-Buffer 这足以使我们的着色器与默认的延迟照明着色器一起使用。但是要使其与我们的自定义着色器一起使用,必须调整MyDeferredShading。...Unity使用通过UNITY_SHADOW_COORDS定义的阴影插值器来存储定向阴影的屏幕空间坐标,或存储具有阴影蒙版的其他光源的光照图坐标。 使用阴影遮罩的定向光源也需要光照贴图坐标。...因此,不能依靠UNITY_LIGHT_ATTENUATION获得使用遮罩的其他定向光。我们可以很容易地确定什么时候是这种情况。...所有这些都假定我们实际上正在使用屏幕空间定向阴影,而在某些平台上并非如此。 ? 接下来,当我们具有其他遮罩的定向阴影时,还必须包括光照贴图坐标。 ?

    2.7K40

    Unity可编程渲染管线系列(九)烘焙阴影(混合光照)

    对于每个可见光,我们可以通过从灯光对象获取烘焙输出来检查它是如何烘焙的。如果混合烘焙类型,则将灯光的混合烘焙模式设置为阴影遮罩时,将使用阴影遮罩。 ? 在我们的着色器中为关键字添加一个多编译指令。...需要做的其他事情取决于我们是渲染静态对象还是动态对象。结果是float4,因为阴影遮罩样本可能包含多达四个光的阴影衰减。 ? 对于静态片段,如果有阴影遮罩,我们将对其进行采样,这就是结果。 ?...仅应在必要时执行此操作,因此仅对于使用阴影遮罩的动态对象。 ? 2.4 LPPV 阴影 阴影探针也可以与光探针代理卷一起使用。...如果光线不使用阴影遮罩,则通道为-1,因此在检索预定义的遮罩时,请添加1。 ? 在“Render”中设置遮挡遮罩数组以及其他可见光数据。 ? 在Lit.hlsl中,将数组添加到灯光缓冲区。 ?...光照贴图用于静态对象,但动态对象仍会实时照明并投射实时阴影。所有其他混合模式光源也是如此,但只能混合主光源的阴影。一开始我们的着色器将光照贴图和实时光照都应用于静态对象,会它们变得太亮。 ?

    2.9K10

    vue+elementui的this.$loading遮罩使用

    $loading遮罩使用 1、 遮罩是什么 在Vue.js组件库element-ui中,遮罩(mask)是一个用于遮盖页面某一部分的半透明层,通常用于在页面加载、弹窗等情况下禁止用户与页面进行交互。...element-ui中的遮罩(mask)通常与其他组件一起使用,比如在使用this.$loading方法显示加载指示器时,会自动添加一个遮罩层,禁止用户与页面进行交互。...2、遮罩怎么使用 在Vue.js组件库element-ui中,可以通过调用this.$loading方法来显示一个加载指示器和遮罩层。具体的代码示例如下: // 在Vue组件中调用this....当数据加载完成后,可以调用返回的Loading实例对象的close方法来关闭加载指示器和遮罩层。...// 在Vue组件中调用返回的Loading实例对象的close方法来关闭加载指示器和遮罩层 const loadingInstance = this.

    3.7K00

    unity3d:Shader知识点,矩阵,函数,坐标转换,Tags,半透明,阴影,深度,亮度,优化

    总之,unity_ObjectToWorld 在 Unity Shader 中是一个非常有用的变换矩阵,用于将顶点从对象空间转换到世界空间,以及转换其他属性如法线向量、切线向量等。...遮罩纹理rgba都利用起来 在真实的游戏制作过程中,遮罩纹理已经不止限于保护某些区域使它们免于某些修改,而是可以存储任何我们希望逐像素控制的表面属性。...在游戏《DOTA 2》的开发中,开发人员为每个模型使用了4张纹理:一张用于定义模型颜色,一张用于定义表面法线,另外两张则都是遮罩纹理。...以下是几个常用的Queue值: Background(背景):1000 适用于渲染背景、天空盒等需要在其他对象之前绘制的物体。...通过调整权重或使用其他的计算方式,你可以根据具体需求来改变亮度计算的方式,以达到不同的效果。

    48110

    Shader 入门与实践

    着色器使用一种特定的编程语言来描述图形处理的逻辑和计算过程。...它提供了一组函数和接口,用于创建和管理图形上下文、着色器程序、缓冲区对象、纹理等,以及执行各种图形操作和渲染任务。渲染管线渲染管线(图形渲染流程)是将三维场景中的图像转换成二维图像的过程。...几何着色器处理: 这一步是可选的,几何着色器将一组顶点作为输入,这些顶点形成图元,并且能够通过发出新的顶点来形成新的(或其他)图元来生成其他形状。...这个阶段也会检查alpha值(alpha值定义了一个物体的透明度)并对物体进行混合图形渲染管线的流程虽然很复杂,除了着色器程序外还包含很多配置项,但一般的场景,我们只需要编写顶点和片元着色器就可以满足了...类似于前端的Codepen,ShaderToy提供了一个优秀的平台,让你能够熟悉shader语法、学习其他优秀程序员的着色器代码,并快速验证你的着色器程序效果。

    49760

    Unity通用渲染管线(URP)系列(九)——点光源和聚光灯(Lights with Limited Influence)

    就像方向光一样,我们需要为其他类型的光发送光的数量和光颜色到GPU。而同时,我们还需要发送光的位置。添加着色器属性名称和向量数组字段来实现。 ?...(一个点光源和一个聚光灯的阴影遮罩) 要将阴影遮罩用于点光源和聚光灯,请向Shadows添加ReserveOtherShadows方法。...在着色器端,向阴影添加一个OtherShadowData结构和GetOtherShadowAttenuation函数。再次,我们使用与定向阴影相同的方法,只是我们只有强度和遮罩通道。...最后,当使用lights per object时,我们将使用不同的着色器变体。通过适当地启用或禁用_LIGHTS_PER_OBJECT着色器关键字来决定。 ?...4.3 使用索引 要使用灯光索引,请将相关的多编译编译指示添加到我们的Lit着色器的CustomLit的Pass中。 ?

    4.2K20

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

    如果发生这种情况,我们不必担心所有其他材质特性。因此,尽早clip是最有效的方法。在我们的例子中,那是MyFragmentProgram函数的开始。 我们将使用alpha值来确定是否应该裁剪。...由于alpha介于零和一之间,因此我们必须减去一些值使其变为负数。通过减去½,我们将使alpha范围的下半部分为负。这意味着将渲染alpha值至少为½的片段,而所有其他片段将被剪切掉。 ? ?...此着色器标记本身不会执行任何操作。这是一个提示,告诉Unity它是哪种着色器。替换着色器使用它来确定是否应渲染对象。 什么是replacement着色器? 它可以否决使用哪种着色器渲染对象。...再举一个例子,你可以使用着色器替换来查看是否有任何对象在视图中使用cutoff着色器,方法是将它们设置为亮红色或其他颜色。当然,这仅适用于具有适当RenderType标签的着色器。...因此,必须以其他方式绘制透明的几何图形。首先绘制最远的对象,最后绘制最接近的对象。这就是为什么透明的东西比不透明的东西要贵得多的原因。 为了确定几何图形的绘制顺序,Unity使用其中心的位置。

    3.8K20

    【Flutter 专题】118 图解特殊利器 ShaderMask 着色器

    和尚在尝试把图片做成黑白色时,了解到 ShaderMask 这个利器,今天和尚简单学习和尝试一下; ShaderMask ShaderMask 是为子类 Widget 添加一个遮罩层,以展示不同的遮罩效果...Widget child, }) 分析源码可得,ShaderMask 继承自 SingleChildRenderObjectWidget,主要用于渲染;shaderCallback 用于生成遮罩蒙版的回调...案例尝试 ShaderCallback ShaderCallback 用于 Widget 调用着色器的回调,以便可以根据子 Widget 的大小和位置自定义着色器;可以利用 Gradients 类来定义着色器的效果...BlendMode BlendMode 为绘制的混合模式,可以用来创建其他效果;例如黑白模式,X 透视模式等; return ShaderMask( shaderCallback: (Rect...---- 和尚主要是想设置一个黑白照片,由此简单延伸了一下 ShaderMask 遮罩着色器的小知识;和尚对于深层的原理还没探究,如有错误,请多多指导!

    90341

    Wolfram | Alpha 之 15 种非数学领域的使用

    回想起那段学生生涯,如果当时能正确地使用 Wolfram|Alpha 作为学习工具,我会节省很多时间。...同样,使用 Wolfram|Alpha 将质量或体积转换为摩尔非常简单,反之亦然。...基因组学 我们甚至可以使用 Wolfram|Alpha 来分析基因,而且不仅限于人类基因组。Wolfram|Alpha 的数据涵盖了小鼠、果蝇等的全序列基因组。...首先,Wolfram|Alpha 解释该查询,然后提供标准名称和其他名称,用表格列出该基因的位置,并直观展示在10号染色体上的位置: Wolfram|Alpha 还显示其他相关信息,例如参考序列、其他相邻基因...与流行的词典或同义词库相比,我更偏爱使用 Wolfram|Alpha 的主要原因是,Wolfram|Alpha 能提供很多有趣且有益的信息。

    97810
    领券