YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Japanese subtitles

← Vertex Shader Programming

Get Embed Code
2 Languages

Showing Revision 1 created 03/11/2014 by Fran Ontanaya.

  1. ピクセル処理を行うフラグメントシェーダの書き換えは
  2. 私自身よくやります ここで頂点シェーダが
  3. どのように変数を生成するか見てみましょう
  4. 頂点の位置と法線はpositionとnormalとして渡されます
  5. すでに組み込まれているprojectionMatrixや
  6. modelViewMatrixとnormalMatrixは
    three.jsでは常に使用可能です
  7. ただしWebGLにおいては追加の作業が必要になります
  8. modelViewとprojectionMatrixの積
  9. modelViewProjectionMatrixが存在しないからです
  10. でも便利な機能なので
    将来あなたが作るかもしれませんね
  11. このシェーダで得るのは まず位置を示すgl_Position
  12. このベクトルは必ず頂点シェーダによって
    設定されます
  13. 頂点シェーダで
    オブジェクトの変形は可能ですが
  14. フラグメントシェーダでは不可能です
  15. modelViewの法線はこの変換行列により計算され
  16. 最後に視点へ向かうベクトルが算出されます
  17. つまりmodelViewの位置が計算されたあと
  18. ベクトルを面から視点へ向かう方向へと変えるのです
  19. ただ原点は視点にあることを忘れないでください
  20. 一時的なmvPositionのベクトルは特に必要なく
  21. 最後の2行は1つにすることも可能です
  22. つまり頂点シェーダは空間位置や法線を
  23. 入力値と捉え
    それらをクリッピング座標の値に変換したり
  24. 法線や位置を変換します
  25. この変換された頂点値を元に
    三角形の面を補間するラスタ化が行われ
  26. 生成されたフラグメントが
    フラグメントシェーダへ送られます