美文网首页
UnityTips 之着色器编译器傻吗 1 Texture

UnityTips 之着色器编译器傻吗 1 Texture

作者: 暴走TA | 来源:发表于2023-04-12 18:56 被阅读0次

简介: 最近在用 ASE 做东西的时候,看了一下生成的代码,有一段关于采样的,看上去是执行了两遍,所以不知道着色器编译器有没有傻到也执行两遍采样
unity版本:20222.1.7fc1

情况一 Lerp

节点图

生成了两次采样的节点图的长相

代码预览

生成的代码,可以看到用了两次的 tex2D

编译结果

可以看到,编译器智能的进行了一次采样

情况二 手动乘法计算

节点图

我们用纹理的 alpha 乘以纹理的rgba

代码预览

我们的代码生成少了,但是依然是两次采样的写法

编译结果

依然采样了一次

额外发现

在两次的代码中都是直接计算的 rgba四个分量,但是在最终时 alpha 并没有被用到,然后我们可以在编译结果中发现,实际的计算自动舍弃了对apha分量的计算。
看来编译器一点也不傻,在默默地帮我们处理一些无用的操作

相关文章

  • 纹理

    关系1: Material 引用 shader ,shader 引用 Texture.材质引用着色器,着色器引用纹...

  • OpenGL 数据处理(上)

    在OpenGL中,大量的数据在着色器中传递,数据通过Buffer和Texture两种形式组织。 1 缓存(Buff...

  • 着色器渲染原理;着色器和程序的关系

    着色器进行渲染 着色器对象和程序对象。 着色器对象和程序对象就好比编译器和链接对象,着色器对象是包含单个着色器的对...

  • flutter中android的texture实现原理2

    原理1原理2flutter端:texture将会设置texture id 找到渲染的texture Texture...

  • OpenGLES着色器和程序

    需要创建两个基本对象才能用着色器进行渲染:着色器对象和程序对象,类似编译器和链接程序。 编译之后,着色器对象可以链...

  • GLKit详解 (下) 与 OpenGL GLSL 初探 (3)

    前言: 有关使用GLSL自己去编写顶点着色器和片元着色器, 因为没有编译器支持提示, 所以很容易写错, 本篇文章...

  • UnityTips 之CacheServer

    一、CacheServer是什么? CacheServer是Unity提供的一个高速缓存服务器,用于存储导入到项目...

  • UnityTips 之 PackageManager

    简介: unity在2018版本就已经有 PackageManager,来管理引擎的功能插件了,有了这个东西,我们...

  • [OpenGL] - 图元

    1.存储着色器 GLShaderMananger 1.1 单位着色器 1.2 平面着色器 1.3 上色着色器 1....

  • OpenGL ES着色器代码语法

    因为着色器里面没有编译器提示, 所以熟悉着色器代码语法是非常有必要的 变量和数据类型 向量数据类型注意: 接下来就...

网友评论

      本文标题:UnityTips 之着色器编译器傻吗 1 Texture

      本文链接:https://www.haomeiwen.com/subject/xyeoddtx.html