For this exercise you'll start with a fragment sheeter that performs diffuse
sliding per pixel. I've hooked up a uniform called uBorder to the user
interface. Change the program to instead compute the diffuse component as
follows. If the dot project is greater than uBorder, then diffuse is 1.0. Else,
diffuse is 0.5. Make sure to use floating point number and don't leave off the
point 0 in 1.0. When you get this new code in place, it should look like this.
Once you have the solution, try the border slider, and see the effect. If
nothing for negative values of border, you might want to think about the effect
of the max function.
Para este ejercicio usted comenzará con una laminadora fragmento que realiza difusa
deslizamiento por píxel. conecté a un uniforme llamado Fronteriza de uBordes para el usuario
interfaz. Cambie el programa para calcular la vez componente difusa como
la siguiente manera. Si el proyecto de puntos es mayor que uBorder, que difusa es
difusa es 0,5. Asegúrese de utilizar el número de coma flotante y no dejar fuera del
punto 0 en 1.0. Cuando llegas a este nuevo código en su lugar, debería tener este aspecto.
Una vez que tienes la solución, pruebe el control deslizante frontera, y ver el efecto. Si
nada para los valores negativos de la frontera, es posible que desee pensar en el efecto
de la función max.
まずフラグメントシェーダで
ピクセルごとの拡散値を計算します
ここではuBordrと呼ばれる変数を使用します
これは拡散成分を計算する代わりに
次のように変更します
ドット積がuBorderより大きくなる場合diffuseは1.0
それ以外を0.5とします
必ず浮動小数点数を使用し 1の時は1.0とします
実際の画像はこのようになります
borderのスライダを動かし効果を見てみましょう
値が負になり影がつかない時は
max関数の使用を考えるかもしれません