0
vec2 divisonでOpenGL ESとWebGLを併用すると、アスペクト比を自動的に処理するように見えます。私の理解は次のとおりです。vec2 division weirdly(自動アスペクト比補正?)
someVec2/anotherVec2 = vec2(
someVec2.x/anotherVec2.x,
someVec2.y/anotherVec2.y)
つまり、それはコンポーネントごとです。
しかし、(uResolutionが現在の解像度で、コードから渡さivec2である)、このコード:
vec2 uv = gl_FragCoord.xy/float(uResolution);
gl_FragColor = vec4(uv.x, uv.y, 0.0, 1.0);
が生成:
vec2 fragCoordUv = vec2(
gl_FragCoord.x/float(uResolution.x),
gl_FragCoord.y/float(uResolution.y)
);
gl_FragColor = vec4(uv.x, uv.y, 0.0, 1.0);
に対し
:
具体的には、Y値は完全に拡大されていないようです。テクスチャを使用すると、問題がより明確になります。すなわちストレート部:対手動コンポーネント分割
:それは自動的にアスペクト比補正を行っているよう
に見えます。これは機能ですか?どこの情報も見つけられないようだ。すべてのことは、通常のバイナリ演算子(+、 - 、/、*など)はコンポーネントベースで動作すると述べています。助けてください!
をお試しください!ありがとうございました。 'float(someiVec)'を実行したときに実際に何が起きているのか知っていますか? – Knifa
私はfloat(uResolution)== float(uResolution.x)と考えています。そして、vec2を単一のfloatで分割すると、各要素はそのfloatで独立して分割されます。 – 246tNt
'float'はスカラー型なので、' float(someiVec) 'は最初に引数をスカラーに変換し(最初のコンポーネントを除くすべてを削除して)、そのスカラーを' float'型に変換します。 –