HLSL でフォトショップのようなベベル効果を作ろうとしています。
難しいのは、最も近いエッジ (アルファ = 0) からポイントまでの距離を見つけること
です。
ベスト、
SW
HLSL でフォトショップのようなベベル効果を作ろうとしています。
難しいのは、最も近いエッジ (アルファ = 0) からポイントまでの距離を見つけること
です。
ベスト、
SW
少し時間がかかりましたが、解決策を見つけました。これを行う適切な方法は、マルチパス フィルターを使用することです。シェーダーの最初のパスでは画像を水平方向にぼかし、2 番目のパスでは垂直方向にぼかし、3 番目のパスでは最初の 2 つのパスで生成されたアルファ チャネルのグラデーションを使用してベベルをレンダリングします。
サンプリングベースのアプローチを試すことができます。ピクセルシェーダー(各ピクセル)では、半径が斜角に等しい円のピクセルをサンプリングする必要があります。現在のピクセルが点灯している場合(alpha = 1)、消灯しているサンプルまでの最小距離を取り(alpha = 0)、フェージングファクターを計算できますfactor = min_dist / bevel_radius
。次に、この係数に基づいてグラデーションカラーを計算できます。