unity3d 怎么吧shader代码放进去
答案:2 悬赏:60 手机版
解决时间 2021-03-21 07:32
- 提问者网友:寂寞梧桐
- 2021-03-20 17:28
unity3d 怎么吧shader代码放进去
最佳答案
- 五星知识达人网友:逐風
- 2021-03-20 18:32
代码命名最好别用material这种unity的关键字,script这里显示的是代码文件,下面的Rend才是材质球,当前obj没有renderer组件的话,是获取不到的,也就是Rend为空,还有,如果用setFloat设置属性的话,要先保证shader有这个变量
全部回答
- 1楼网友:罪歌
- 2021-03-20 20:12
metal api:有人说,metal api是ios的未来。如果你完全不关心android,pc,xbox,ps等平台,那么你的确可以奉之为圭臬。反正,unity3d 是不支持用metal写的,而且他们说近期也没有要去支持metal的打算。他们只支持自动编译成metal api,但这样你能控制的就很少。因此,这不是一个unity开发者入门的选择。
vulkan:有人说这才是未来。大概吧。amd开发过一个叫做mantle 的语言,只有很少的几个游戏用过它,然后它还死了,现在有人用它搞出了这个。人们说他们从苹果公司的metal借鉴了一些理念,用之以完善vulkan。很显然,vulkan是在2015年gdc公布的,但我没有在其他任何地方听说或看到。即使它真是未来,那也是一个远到不着边际的未来。vulkan 听起来不错,像是某种方式的梦想成真,但它甚至没有发行。只有valve公司用过它。什么?你在valve工作?你的上司是要支持这个技术了吗?太多问题了。此外,约翰·卡马克暗示android可能不久会有一个类似metal api的东西,所以android设备的gpu甚至不需要接受它。那么,当你考虑所有事情时,就是有太多的问题围绕着它,太多的未知。无论如何,它不是unity当下的选择。
glsl:现在你可以在unity里写glsl了。unity会将这段代码编译到任何平台,虽然你可能要在pc(或任何非ios / apple设备)上执行“-force-opengl”,以使之正常工作。那会导致在某些显卡gpu上,unity profiler不能正确地执行配置。我很想知道,是否有可能解决这问题。所以,如果你用着mac,团队里人人用着mac,那么相信你应该使用glsl- 绝对是明智之选。
surface shaders:你可以用unity shader库做些很酷的东西,但它不一定会在移动设备上有效果。 shader库就像一个简化的,更易于阅读的标记语言,但你失去了你手机游戏需要的控制和性能选项。鉴于大多数在中国的工作是做手游,我不推荐这样做。
cg/hlsl:有人说,cg是死的语言。那么,事实是,cg和hlsl是同一个语言,只是由两个不同的公司,nvidia 和microsoft分别维护。现在nividia已停止支持cg,没有必要啊是不,反正microsoft在维护hlsl。人们仍然使用着cg的名字,但愿没有人对此困惑了。 cg/ hlsl当然没有死,在跟几个大牛以及论坛老兵聊过unity,他们都认为hlsl是unity shader的未来,因为公司为游戏机做了很多,为3a级提升了许多。只要看看unity5的特性,你会懂我意思了。cg/hlsl可以被编译到你需要的任何设备,同时unity和微软已经亲密得像兄弟一样,并且将一直亲密下去直到地老天荒。
结论:
如果你想用unity3d,为windows,游戏机,android和ios开发游戏,并且在所有平台上表现不俗,你应该用cg/hlsl。
如果你想用unity3d,只做手游(不需要支持windows或游戏机),glsl是上选,尤其是当你用mac电脑工作。
如果你不想用unity3d,只希望为最新的ios设备开发,那么metal是最好的,尽管现在中国很少有人用它。
如果你想用cocos2d,我不是专家,但朋友说glsl是您的最佳选择。
不过,也有,但,也许......。在中国,占主导地位的艺术风格是手绘。这并不需要很深的渲染知识,一个经验丰富的人只要做很少的工作。shader编码为主要是为试图超越目前世代的图形,或创建特效,或避开某些图形问题。所以,你要想想是否值得学习,因为很多种游戏可能不需要这个。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯