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

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

(反照率贴图) 使用该反照率贴图,并使用我们的Lit着色器创建新材质。我将其平铺设置为2 x 1,以便让正方形纹理环绕一个球体而不会被拉伸得太多。但默认球体的极点总是会变形很多,这是无法避免的。...与其创建具有更好遮挡数据的另一个遮罩贴图,不如将遮挡强度滑块属性添加到我们的着色器中。 ? ? (遮挡滑块,降低至0.5) 将其添加到UnityPerMaterial缓冲区。 ?...生成Mip贴图时,应将法向矢量与其他数据通道区别对待,而Unity的纹理导入器无法做到这一点。而且,在使Mip贴图淡化时,Unity会忽略Alpha通道,因此该通道中的数据将不会正确变淡。...我不会在本教程中介绍这些内容。 为贴图添加着色器属性,并添加法线scale。 ? (细节法线属性,设置为强度的一半) 通过添加UV细节参数并采样细节贴图来调整GetNormalTS。...(细节化后的法线) 5 可选贴图 并非每种材质都需要用到我们当前支持的所有贴图。未分配贴图意味着结果不会修改,但是着色器仍使用默认纹理来完成所有工作。

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

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

    尽管DoMetallic在没有贴图的情况下会显示滑块,但我们需要在此做相反的操作。另外,Unity的标准着色器使用遮挡贴图的G颜色通道,因此我们也将这样做。在工具提示中展示。 ? ? ?...当遮挡强度为零时,贴图完全不会影响光线,因此,该函数需要返回1。当处于全强度时,结果恰好是贴图中的结果。我们可以通过基于滑块在1和贴图之间进行插值来实现。 ?...不必总是将反照率与细节相乘,而是基于蒙版在未修改和修改后的反照率之间进行插值。就像所有其他属性一样,将反照率的检索放入其自身的函数中。 ? 2.3 法线细节 还需要对法线向量进行相同的调整。...这时,没有任何细节与未修改的朝上的切线空间法线向量相对应。因此,我们再次通过基于细节蒙版的向量及其原始值之间的插值来替换原始细节法线。 ? ?...如果愿意,可以用常规的for循环替换它们。 ? 请注意,上面的代码使用一个临时变量来缓存editor.targets属性。foreach循环不需要这样做,因为仅直接引用一次数组即可获得其迭代器。

    2.4K30

    基于R语言的shiny网页工具开发基础系列-01

    上面是shiny团队的稿件 shiny是一个直接用R来制作交互式网页应用 (interactive web applications (apps)) 的R包 一、欢迎使用shiny 如下就是一个简单朴素的...runApp和其他R中的许多函数(read.csv, read.table)一样,第一个参数的是从工作目录到app的目录的文件路径,以上代码假设my_app文件夹包含在你的工作路径,因此,只需要输入文件夹的名字...改改代码练习一下 在工作目录创建一个新的文件夹App-1,用上面的代码创建一个app.R,看起来像这样 # 输入命令启动一下看看 runApp("App-1") 终止app并尝试做如下更改 1.把标题从...2.设置滑块的最小值为5 3.把直方图的边框颜色从白色改成黄色 改好了看看能否出现下面的结果吧,我成功了哦 默认情况下,app以"normal"模式展示,就像上图一样。...Shift+Enter) 点击灰色的向下展开小箭头还有更多惊喜哦 一个个点点看 5.回顾一下怎么创建一个app 创建一个以myapp为名的路径(文件夹) 保存app.R到myapp文件夹中 使用runApp

    2.2K30

    Python交互式数据分析报告框架:Dash

    只因去年下半年的时候,用R语言的博哥和龙少有Shiny这样的框架可以开发交互式整合Web数据分析报告,让我这个成天鼓吹用Python做数据分析的人眼馋不已。...,比如选择下拉菜单或拖动滑块,Dash的装饰器就会把新输入的值传递给Python代码。...如果你是从Excel阵营中转移过来的,那算是来对地方了。Dash与Excel都采用了“响应式”的程序模型。在Excel中,输入单元格发生变化时,输出单元格也会自动更新。...用滑块、输入框、下拉菜单与图形等富Web组件取代Excel中的单元格,用Python代码取代Excel函数或VBA脚本,这就是用Dash重写的Excel表单应用: app.layout = html.Div...最后,我要给Jupyter Widget(小组件)点个赞,Jupyter在其Notebook界面中提供了一个非常赞的Widget框架,可以为在本地运行的Jupyter Notebook中的图形添加滑块等功能

    7K92

    「R」Shiny:响应式编程(一)server 函数

    在前面的文章中,我们介绍了如何创建用户界面。现在我们将内容转向对于 Shiny 服务端的讨论,它会让我们在运行时中使用R代码让用户界面栩栩如生。 在 Shiny 中,我们使用响应式编程表达服务逻辑。...因为前端呈现给每个用户的页面是一样的,所以 ui 很简单;而 server 就会很复杂,这是因为每个用户都需要一个独立版本的应用:例如,当用户 A 移动滑块时,用户 B 不应该受到影响。...input 如果在内部被修改就不能反应用户在浏览器中的输入,从而造成了不一致性,这是 Shiny 所不允许的。...不过,有时候动态地修改界面显示是有必要地,之后我们会介绍通过像 updateNumericInput() 这样的函数来进行更新。 关于 input 有另外一个重要的事情:允许读取它是有选择性的。...我们必须通过像 renderText() 或 reactive() 这样的函数创建的响应式语境中才能从一个输入控件中读入数据。

    2.5K10

    基于R语言的shiny网页工具开发基础系列-03

    ,每个都可以用直白命名的R函数创建,例如函数actionButton 用来创建 动作按钮 (Action Button),函数 sliderInput 创建 一个 滑块 (slider bar) 下表是常见的小部件...当然此篇只要了解他们的作用就行了,不必了解这种复杂的布局方案 练习 尝试写个如图所示的界面(答案很长放在后面,但是一定一定要先自己做一遍哦) 小节回顾 shiny提供一个函数家族来创建这些小工具 每个小工具的函数都需要...name和label这两个参数 一些小工具需要特别的指令来执行他们的工作 加入小工具就像加入其他HTML内容一样简单 更进一步 Shiny Widgets Gallery 提供模版,供你快速加入到自己的...app中 访问这个网站,图库中展示了每个小部件,并演示了每个小部件的值根据你的输入而变化 选择一个小工具,并点击See Code。...我又做出来了哦,这是我的结果 我的代码 library(shiny) # Define UI ---- ui <- fluidPage( titlePanel("censusVis"), sidebarLayout

    2.6K20

    「R」Shiny:用户界面(三)布局

    在我们知道如何创建一系列输入和输出控件之后,我们需要学会如何在一个页面中对它们进行排列,以达到比较好的展示效果。这正是布局函数的工作,布局函数提供了一个应用高层次的可视化结构。...library(shiny) 概览 Shiny 应用布局由层次函数调用创建,其中 R 中的层次结构与输出中的层次结构匹配。...,相信通过扫读上面的函数名也会对该页面布局有一个比较准确的猜测:顶部是标题栏,然后是侧边栏(包含滑块),主面板包含图。...接下来,我将给读者介绍 2 个通用的页面结构:带侧边栏的页面和多行页面。...技术实现 可能会有读者惊讶我们上面使用了一个 R 函数 theme_demo() 来创建 Shiny 的 UI。

    3.7K10

    Unity3d开发

    slider 用于显示拖曳区域的GUI样式 value 设置滑动条显示的值 rightValue 滑块右端的值 thumb 设置显示可多同的滑块的GUI样式 就是一个滑块在进度条上左右拖动,游戏中经常会有使用它来做英雄的血条..." + GUI.color); GUI.DragWindow(new Rect(0, 0, 1000, 1000)); } } 贴图 选中图片,将Tecture type修改成sprit..."); } Toggle 用于在屏幕上绘制一个开关,通过开关的闭合来执行一些具体的指定操作,就会根据不同的切换动作来返回相应的布尔值 参数 描述 position 设置控件在屏幕上的位置及大小 image...将基于输入的世家您发送到应用程序中的对象 Standalone Input Module独立输入模块;基于InputManager管理器的状态发送事件 Touch Input Module触控输入模块...全局地形生成的高度图的分辨率 Detail Resolution 细节分辨率 全局地形生成的细节贴图的分辨率 Detail REsolution Per Patch 每个地形快的网格分辨率 全局地形中每个地形快的网格分辨率

    9.1K30

    基础渲染系列(九)——复合材质

    像标准着色器一样,我们将贴图和滑块显示在一行上。 ? ? ? (使用金属贴图) 2.3 贴图还是滑块 使用金属贴图时,标准着色器的GUI隐藏滑块。我们也可以这样做。...Unity基于多重编译语句以及将哪些关键字添加到材质中,来检测项目中的所有自定义关键字。在内部,它们被转换并组合为位掩码。关键字获得的标识符随项目而异。 在Unity 5.4中,位掩码包含128位。...另一个是调制后的平滑度贴图的标量。这里我们简单一些,也同时使用_Smoothness属性。这意味着必须将其设置为1才能获得未修改的平滑度贴图值。 ?...太细的边无法正确估计,特别是如果它们未与UV轴对齐的时候。对于这种压缩,电路中尖锐的对角边缘是最坏的情况。在金属表面和非常光滑的表面上,此限制变得清晰可见。其他时候它没有那么明显。 ?...4.4 自发光岩浆 这是岩浆材质的自发光图。它使沟壑中的熔岩炽热。你可以通过调整颜色来更改自发光的亮度和色调。 ? ? (岩浆的自发光贴图) 我分配了自发光图,但是没有显示?

    3.5K10

    Unity通用渲染管线(URP)系列(四)——方向阴影(Cascaded Shadow Maps)

    但是我们将来会支持其他类型的光源,它们将获得自己的阴影设置。因此,将atlasSize放在Directional结构中。这样,我们可以在检查器中自动获得hierarchical 配置。 ?...尽管确切的格式取决于目标平台,但这为我们提供了适合渲染阴影贴图的纹理。 ? 当获得临时渲染纹理时,我们还应该在完成处理后释放它。...这些是输入参数,其余三个是输出参数。首先是视图矩阵,然后是投影矩阵,最后一个参数是ShadowSplitData结构。 ? 拆分的数据包含有关应如何剔除投射对象的信息,我们需要将其复制到阴影设置中。...我们还使用光源现有的“Normal Bias”滑块来调整我们应用的法线偏差。...(裁切和透明度的阴影表现) 5.1 阴影模式 我们可以通过几种方法来修改阴影投射器。由于涉及写入深度缓冲区,因此阴影是二进制的(无论是否存在),但这仍然给我们带来了一定的灵活性。

    6.8K40

    基于R语言的shiny网页工具开发基础系列-04

    告诉shiny如何在server函数构建对象,该对象会在它的代码构建一个小工具的值的时候反应 第一步:加一个R对象到UI shiny提供了一个函数家族,将R对象转换成在UI中的输出,每个函数创建特定类型的输出...因为滑块小工具有两个值,最大值和最小值,所以input$range 会包含一个长度为二的向量。...当用户改变小工具,shiny会使用新的值重建依赖于那个小工具的所有的输出,重建对象达到更新的目的 这就是如何用shiny创建反应,通过连接input列表中的值到output中的对象。...通过在render*中的表达式包含一个input值来创建反应对象 我的结果( ?...又对了) 我的代码 library(shiny) ui <- fluidPage( titlePanel("censusVis"), sidebarLayout( sidebarPanel

    7.2K10

    基于R语言的shiny网页工具开发基础系列-05

    中是不一样的 当shiny运行server中的函数时,会把所有文件路径的起始位置视为server.R所在的路径,换而言之,shiny app会把server.R所在的路径作为工作目录。...shiny只会运行这些代码一遍,包含了所有你在server函数中的表达式要调用的东西。 在server函数中定义用户特定的对象,当时不包含在render*函数之中,这种对象是每个用户都需要个人副本的。...总之防止把不必要的代码放入render*函数,拖慢app的速度 练习1 尝试将如下代码插入到下面app.R脚本的正确位置 注意,此练习的结果还不是完整的app,所以无法运行,练习二才会完成 source...每次启动,shiny会运行app.R中的代码,server函数之前的部分只会在这个app启动时运行一次 server之中的代码会运行多次,可能会拖慢app速度 switch是多选项小工具的实用辅助函数...,把小工具的值转换成R表达式 我的答案 library(shiny) source("helpers.R") counties <- readRDS("data/counties.rds") library

    1.6K20

    【Unity3D入门教程】Unity3D之GUI浅析「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。 前言 一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。...; } 3 TextField文本输入框 可以输入文字等,如用户名和密码。...; editPassword = GUI.PasswordField(newRect(150,80,200,30),editPassword,"*"[0],15); 4 Slider滑动条 滑动条上的滑块位置可以表明对应的数值...toolBarValue0,100,0); toolBarValue1 = GUI.HorizontalSlider(newRect(200,180,100,30),toolBarValue1,0,100); 5 GUI中绘制贴图...当然现在很多开发中,这种基本的GUI已经用得不多了,UGUI是新一代的交互方式,具有更加灵活的使用情境,值得继续探究。

    1.4K20

    Unity通用渲染管线(URP)系列(七)——LOD和反射(Adding Details)

    但是,太小而无法覆盖多个像素的细节会反而会降级为模糊的噪声。在这种视觉比例下,最好不要渲染它们,这样还可以释放CPU和GPU来渲染更重要的东西。我们可以在可以区分它们时决定是否需要剔除此类对象。...为了使这一点更加明显,我在Baked Light 场景中添加了新的金属球,这些金属球具有不同的颜色和平滑度。 ?...Surface现在因其菲涅耳强度而获得了发展。 ? 我们将其设置为等于LitPassFragment中的滑块属性的值。 ? 最后,使用它来缩放我们在IndirectBRDF中使用的菲涅耳强度。...(使用三个反射探针) 每个对象仅使用一个环境探针,但是场景中可以有多个探针。因此,你可能必须拆分对象以获得可接受的反射。...如果你感到好奇,我的2018 SRP教程的Reflections教程中说明了如何混合探针,但是我希望一旦旧版管道删除,此功能就会消失。将来我们将研究其他反射技术。

    4.5K31

    Shiny-R语言轻松开发交互式web应用

    Shiny应用程序会自动刷新计算结果,这与电子表格实时计算的效果类似。当用户修改输入时,输出值自动更新,而不需要在浏览器中手动刷新。...可以在任何R环境中运行(R命令行、Windows或Mac中的Rgui、ESS、StatET、RStudio等) 基于Twitter Bootstrap的默认UI主题很吸引人。...开发和发布你自己的Shiny小工具,其他开发者也可以非常容易地将它加到自己的应用中 安装 Shiny可以从CRAN获取, 所以你可以用通常的方式来安装,在R的命令行里输入: install.packages...现在,就尝试运行一下例子程序,浏览一下源代码,可以获得对shiny的初始印象。也可以通过认真阅读注释来进一步了解。...从某种程度上说,它很简单——根据用户选择的bin的数目来将直方图画出来。

    2.1K20

    (数据科学学习手札66)在ubuntu服务器上部署shiny

    我使用的服务器是阿里云ECS,ubuntu 16.04,2核8G内存,40G系统盘,如果条件允许的话,建议内存不要选择过小,否则在编译安装一些R包如raster时会内存不足(当然你也可以通过swap的方式来增加虚拟内存...其实可以在服务器中输入wget 下载链接 来下载对应的文件,但是无奈这样下速度太慢,于是我在本地电脑用了之后以很快的速度下载了Rstudio的geb文件,然后用pscp上传到我们的服务器上的指定目录下:...可以看到熟悉的界面,就是个在线版的Rstudio,可以通过它来方便地修改服务器上的R代码。...这时可以发现右侧下方的应用没有正常显示,但这里并没有明确显示具体的报错信息,为了在shiny应用出错时能显示具体的错误信息,我们需要修改shiny server的配置文件,执行下列命令打开shiny server...同样的,我们可以修改配置文件中的默认应用路径到我们自己的应用位置,而在管理shiny server运行上,主要用到下列命令: #查看状态 sudo systemctl status shiny-server

    5K20

    基础渲染系列(八)——反射

    你可以通过打开场景视图工具栏中的Gizmo下拉菜单,向下滚动到ReflectionProbe,然后单击其图标来做到这一点。 ? ? (关闭反射探针Gizmo) 反射探针通过渲染立方体贴图来捕获环境。...并且有许多材质是金属和非金属成分的混合。你可以通过将Metallic滑块设置在0到1之间的某个位置来模拟这一点。 ?...你也可以使用其他编辑模式在场景中对其进行调整,但是它有点笨拙,并且当前无法与撤消一起很好地工作。 调整盒子,使其覆盖建筑物的内部,覆盖支柱并一直到达最高点。...我将其设置得比它大一点,以防止由于场景视图中的gizmos的Z角冲突而导致闪烁。 ? ?...Unity将这些信息存储在立方体贴图位置的第四分量中。如果该分量大于零,则探针应使用盒投影。让我们使用if语句来解决这个问题。 ? 即使我们使用了if语句,也不意味着编译后的代码也包含if。

    4.1K30

    如何在Ubuntu 14.04上设置Shiny Server

    如果您的CVM运行的是不同版本的Ubuntu或不同的Linux发行版,则大部分说明仍然适用,但您可能需要修改某些命令以匹配您的特定发行版。...先决条件 在本教程中,您将需要: Ubuntu 14.04 腾讯CVM,带2 GB RAM,没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器...注:在本指南的剩余部分,当你看到你的服务器的IP,你需要用你的CVM的IP来代替它。 第1步 - 安装Shiny 在安装Shiny Server之前,我们需要安装shiny R包。...sudo gdebi shiny-server-pro.deb 您还将获得激活Shiny Server Pro所需的产品密钥。...Shiny Server的配置文件位于/etc/shiny-server/shiny-server.conf。默认情况下,它配置为服务于/srv/shiny-server/目录中的应用程序。

    3.3K10

    「R」Shiny 教程笔记

    p8:响应值(reactive values) 响应值就是 Shiny 中的数据流,input 是响应值的列表,这些值展示了当前输入的各自状态。注意⚠️:响应值只能在对应的设定好的响应环境中使用!...需要注意⚠️的是,当多个输入在同一个代码块中时,修改一个参数会更新全部的参数,在一般情况下没有问题,但如果涉及随机数就会影响整个结果。...例如讲解视频中的例子,当修改图标题时,代码重新运行,而数据来自随机函数,随机函数被重新执行,最终效果是不仅仅图标题改变了,生成的数据也发生了改变。 ? ? ? ? ?...(这里如果修改 title,整个结果都会发生改变) ? p10:使用 reactive 表达式模块化 Shiny 回顾上一部分的学习中,当多处使用同一随机数据时,不同地方的数据将变得不一致。...p14:使用 reactiveValues() 管理状态 input 是无法修改的,我们可以通过 reactiveValues() 来生成一个列表,管理响应值的状态,包括修改。 ? ? ? ?

    6.7K51
    领券