1.error CS0104: 'MinAttribute' is an ambiguous reference between 'UnityEngine.Rendering.PostProcessing.MinAttribute' and 'UnityEngine.MinAttribute'

Solution:using MinAttribute = UnityEngine.PostProcessing.MinAttribute;

2.自动生成粒子好像粒子数大于16384就会出问题

16384 * 4 = 2 的 16次方, unity最多只能有65535个顶点。即索引值是uint的,本身的int类型很令人迷惑。create.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32;可设置为uint32

3.shift alt enter vs enter full screen

4.Unity sky box render order appears quite bugged. Shader says queue is background, but it is actually rendering as the last thing in the Geometry queue.

5.unity can't add script behaviour assemblyinfo. the script needs to derive from monobehaviour

一种可能是没有继承monobehaviour 或者脚本名字和类名不一致

6.fragment shader 中利用天空盒位置计算随机数,然后通过乘以一个大数然后模一个数来获取随机星星,但是好像不可行呐,因为精度问题模出来之后星星老是会闪

原因:应该是因为天空盒精度达不到导致像素对应的天空盒坐标有微小变化最终的出来的随机数也有微小变化导致闪烁。

Tsize=Rwidth/tan(fov/2) 因为减小了fov之后增加了天空盒精度之后改善了。

如上图所示,假设红色是第T帧的屏幕(假设屏幕5*5像素),蓝色是第T+1帧的屏幕,则可以看到前一帧的红点并不一定在后一帧中出现,所以根据位置算出来的随机数是不一致的,导致闪烁现象

目前想到的解决方案:不要让位置完全随机,而是把整个天空盒分为512等份,然后fragment shader里面获得的天空盒位置规则化到这512等份里面,这样可以通过减少随机精度的方案来减少位置的变化抖动。

7.Shader.setGlobal不生效问题

According to the reference, Shader.setGlobal functions would only work on variables that are not exposed as a property in the property block. So what you have to do is remove the _test("_test",Float) = 0.0 line to make it work. Be sure to remake a new material, since unity will save the properties you have set on a material even when you are using a shader that doesn't have that property.

8.UNITY_TRANSFER_INSTANCE_ID invalid subscript instanceID

解决方案:在顶点着色器的输入输出加入宏UNITY_INSTANCE_ID

9.Unity shader 改完之后要实际赋给材质用一下可能有些错误才能暴露出来

10.shader_feature & multi_compile

shader_feature is very similar to multi_compile. The only difference is that Unity does not include unused variants of shader_feature shaders in the final build. For this reason, you should use shader_feature for keywords that are set from the Materials, while multi_compile is better for keywords that are set from code globally.

The main disadvantage of shader_feature and multi_compile is that all keywords defined in them contribute towards Unity’s global keyword count limit (256 global keywords, plus 64 local keywords). To avoid this issue, you can use different shader variant directives: shader_feature_local and multi_compile_local.

  • shader_feature_local: similar to shader_feature, but enumerated keywords are local.
  • multi_compile_local: similar to multi_compile, but enumerated keywords are local.

11.Difference between UnityObjectToWorldDir and UnityObjectToWorldNormal

WorldDir is applying the rotation from the transform matrix.

WorldNormal is apply the rotation from the inverse transpose matrix.

12.图片边界有条缝

(把图片排布方式由repeat改为clamp)

13.关于Skybox

粗略做了一下测试unity默认的Skybox应该是用的Sphere模型,然后当前摄像机下ModelMatrix大概放大了十几万倍。而且这个ModelMatrix是和裁剪平面的大小有关的。

14.build target android player is not supported

解决方案:把VS工程关掉重启好像就可以了

15.Alpha 贴图采样的时候一定记得要是tex2Dlod().a, 不写.a取不到正确的值

16.Vertex Shader 采样贴图需要SM3以上,最好用tex2Dlod而不是tex2D

17.2D Texture在Spherical mapping的时候会有一条缝隙

解决方案,用tex2Dlod采样贴图,防止mipmap插值采样可以防止。

18.AssetImporter.GetAtPath 需要Assets开头的相对路径

19.2D Texture(从左到右六个面)转cubemap size must power of two

20.surface shader里面取出来的vertex color和texcoord不对,转成正常的vert frag就正常了

21.shader中定义常量定义在shader外面好像不生效,写在shader里面就可以了

22.Unity 和UE4 FBX导入之后UV.v是相反的,需要flip一下才能一致

23.反射不要忘记设置BindingFlags

24.抽象函数的反射,反射函数要用抽象类型来获取(反射函数参数是基本类型),然后反射调用的时候再用实际的对象去执行,不然可能反射参数会不对。

25.unity 没有实例化的prefab获取的collider bound是不对的

26.unity在PC float half fixed都是32位,移动端half16位,可能会导致精度问题。

unity片元着色器中获取屏幕坐标_Unity踩坑笔记(持续更新)相关推荐

  1. Swift原生项目中集成RN的踩坑笔记

    学习Reate Native的踩坑之路 搭建环境 官方环境搭建地址.官方原生集成地址 本人环境:mac10.15.4.Xcode11.4.brew:2.2.16.Pods:1.9.1.npm:6.14 ...

  2. UnityShader入门精要笔记1——顶点/片元着色器结构与BRDF(基本光照模型)——实现漫反射

    文章目录 BRDF(基本光照模型) 实现漫反射 光线强度的计算 好现在开始写Shader 新建Shader 添加一个Properties语义块 添加SubShader和Pass. 使用CG/HLSL语 ...

  3. WebGL入门(四)-在JavaScript程序通过uniform变量向片元着色器传值

    在JavaScript程序通过uniform变量向片元着色器传值 1.demo效果 2.相关知识点 2.1 片元着色器中的uniform变量 2.2 gl.getUniformLocation()方法 ...

  4. 顶点着色器到片元着色器的过程,varying变量

    varying 变量: 从顶点着色器向片元着色器中传入数据. varying 变量只能是float(以及相关的vec2,vec3,vec4,mat2,mat3,mat4). 前面我们了解到顶点着色器是 ...

  5. 【Unity Shader】学习顶点/片元着色器

    上一篇博客重点放在了Unity Shader的基本结构,分别介绍了它包含的三个语义块,最后简单介绍了Unity Shader的形式:表面着色器.顶点/片元着色器和固定函数着色器. 趁热打铁,今天接着上 ...

  6. Unity Shader:细分着色器(Tessellation Shader)在Unity顶点着色器中的写法以及各参数变量解释

    图1:在Unity内将sphere细分后 图2:在Unity内将sphere细分后 Unity官网关于细分着色器的资料比较少,只有在Surface Shader中使用的例子.我看了下Surface S ...

  7. 【Unity Shaders】最简单的顶点/片元着色器3

    微信号:ITComputerGraph 更多精彩内容,关注公众号<IT木子李> Shader "Unity Shaders/Simple Shader3" {SubSh ...

  8. unity 表面着色器、顶点、片元着色器

    1.表面着色器:表面着色器是Unity特有的一种着色器代码类型,表面着色器定义在SubShader中.表面着色器需要编写的代码量很少,Unity会自动处理一些细节.但是表面着色器的本质和顶点.片元着色 ...

  9. cesium获取模型实时坐标_Cesium 顶点着色器中求解模型坐标

    1. 由世界坐标转模型坐标 顶点着色器: attribute vec3 position3DHigh; attribute vec3 position3DLow; attribute vec3 nor ...

最新文章

  1. 测试代码发布到博客效果(Windows Live Writer发布)
  2. 有限算法下的技术实现路线
  3. 经典教材《模式识别和机器学习》官方免费下载!
  4. illegal instruction错误
  5. 使Struts2与Servlet并存解决办法 Filter转发Servlet
  6. windows系统作为客户端时,linux中本地yum源挂载时,如何同时挂载DVD1和DVD2?
  7. Android图片上传和下载,android 上传/下载 图片
  8. 《大数据、小数据、无数据:网络世界的数据学术》一 3.5 交流融合
  9. 如何更改webstrom的默认端口63342
  10. autosar架构_(1)Testing-Autosar架构及模块描述
  11. 计算机论文对比实验怎么做,如何查找别人论文(计算机类文献)中实验部分的代码?...
  12. 最好用的Mac任务规划软件【滴答清单】
  13. 汇编中的10H中断int 10h详细说明
  14. 网络图片爬虫(几个简单步骤实现网页图片的爬取,详细步骤,超详细,简单易懂)
  15. 程序员编程艺术第四十一章 四十二章 荷兰国旗 矩阵相乘Strassen算法
  16. getch方法_c语言中getch的用法
  17. JVM的GC算法详解(二)
  18. word中添加背景色
  19. GBase8s数据库REFERENCES 子句
  20. FPGA几种电平:TTL,CMOS以及LVTTL,LVCMOS

热门文章

  1. js 一/二维数组排序
  2. js的作用域链,原型链,以及闭包函数理解
  3. 【Android】开发优化之——调优工具:TrackView,Method Profiling
  4. OpenSql的优化原则
  5. ASP.NET MVC 2 验证
  6. HDU 1180 诡异的楼梯
  7. mysql dms_关于MySQL与DMsql探寻
  8. android传输注册数据异常,android数据传值再获取的问题
  9. jsbridge实现及原理_如何实现一个优雅的jsBridge
  10. 离开当前屏幕的判断方法_Android App内存泄露测试方法总结