GLSLとOpenCLの両方に、値が境界を超えた場合に挿入された上限または下限に数値をクランプするクランプ機能があります。このようなものをC ++で実装しようとすると、次のコードのようになります。
if(i < min){
i=min;
}else if(i > max){
i=max;
}
ただし、これには複数の分岐パスがあり、ほとんどの場合、すべての分岐を実行する必要があるため、GPUの速度が大幅に低下する可能性があります。
では、GLSL / OpenCLクランプはどのように機能し、ブランチを使用する場合は、可能であれば回避することをお勧めしますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加