小编Hod*_*dor的帖子

在编写着色器时,我应该避免创建多个变量吗?

我现在开始学习着色器(HLSL,GLSL),我看到了许多教程,其中创建的变量不多,这使得阅读变得更加困难.我想知道新变量的创建是否会影响着色器的性能.

所以,例如(在CG中):

这是

    inline float alphaForPos(float4 pos, float4 nearVertex){
            return (1.0/_FogMaxRadius)*clamp(_FogRadius - max(length(pos.z - nearVertex.z),length(pos.x - nearVertex.x)), 0.0, _FogRadius)/_FogRadius;
    }
Run Code Online (Sandbox Code Playgroud)

比这更快?

    inline float alphaForPos(float4 pos, float4 nearVertex){
        float distX = length(pos.x - nearVertex.x);
        float distZ = length(pos.z - nearVertex.z);
        float alpha = 0.0;
        alpha = _FogRadius - max(distZ,distX);
        alpha = clamp(alpha, 0.0, _FogRadius);
            return (1.0/_FogMaxRadius)*alpha/_FogRadius;
    }
Run Code Online (Sandbox Code Playgroud)

shader glsl hlsl glsles

6
推荐指数
1
解决办法
750
查看次数

Unity Performance-协程vs FSM更新

我刚刚开始学习Unity脚本,并且很难理解为什么有些人比状态机更喜欢协程。

我确实知道某些程序员可能更容易理解代码,但我不明白为什么有人说使用协程对性能更可取。

我在Unity中使用C#,据我所知,C#编译器将IEnumerator转换为状态机

所以也许我在这里错过了一些东西。使用协程而不是FSM循环来处理行为和状态是否对运行时性能更好?如果是,为什么?

state-machine fsm coroutine unity-game-engine

3
推荐指数
1
解决办法
8428
查看次数

标签 统计

coroutine ×1

fsm ×1

glsl ×1

glsles ×1

hlsl ×1

shader ×1

state-machine ×1

unity-game-engine ×1