LoginSignup
1
2

More than 1 year has passed since last update.

GLSLからHLSLへ変換する方法

Last updated at Posted at 2021-09-14

ShadertoyのGLSLのソースコードをHLSLへ変換するShaderManというツールがあるのですが、結構癖があるので説明します。

使い方などは以下にやり方が載っているのでそれを参考にしましょう。

ドキュメントが古い

Open ShaderMan from Tools\ShaderManと書かれていますが、実際には2021年現在はWindow\ShaderMan です。

エディタの癖が強い

コピへして、スクロールしようとすると、Macのマジックパッドなどでスクロールできず、矢印キー下(↓)で進んでいくと、下のコードへ辿り着けると言う仕様になっており、最初文字数制限で下にいけないのかと思ってしまうくらい、非常にわかりにくいUIです。

スクリーンショット 2021-09-14 23.37.46.png

構文を少しでも違うと、変なエラーが出る

例えば、Shadertoyでよくある以下のようなメイン関数で

void mainImage( out vec4 fragColor, in vec2 fragCoord )

in を抜いた状態でconvertを走らせると、以下のようなバグが起こります。

i.uvfi.uvri.uvai.uvgi.uvCi.uvoi.uvli.uvoi.uvri.uv
i.uvfi.uvri.uvai.uvgi.uvCi.uvoi.uvli.uvoi.uvri.uv
<省略>

変更しないといけないコード

iFrame -> Time.y
tex2Dlod(_MainTex, uv, x) -> tex2Dlod(_MainTex, float4(uv, x, 0))
1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2