opengl:glsl_hlsl
文書の過去の版を表示しています。
GLSL/HLSL 命令対応表
| GLSL | HLSL | MT | |
| float | float | float | |
| | float1 | | |
| vec2 | float2 | float2 | |
| vec3 | float3 | float3 | |
| vec4 | float4 | float4 | |
| mat3 | float3x3 | float3x3 | |
| mat4 | float4x4 | float4x4 | |
| mat3x4 | float3x4 | float3x4 | |
| int | int | int | |
| ivec2/ivec3/ivec4 | int2/int3/int4 | int2/int3/int4 | |
| bool | bool | bool | |
| bvec2/bvec3/bvec4 | bool2/bool3/bool4 | bool2/bool3/bool4 | |
| lowp float | min10float | | 少なくても 10bit fixed 以上 |
| mediump float | half (min16float) | half | 少なくても 16bit fp 以上 |
| highp float | float | float | 32bit fp |
| double | double | | 64bit fp |
| highp int | int | int | 32bit int |
| highp uint | uint | uint | 32bit unsigned int |
| mediump int | min16int | short | 16bit int |
| vec3 x= vec3( a, b, c ); | float3 x= { a, b, c }; | float3 x= { a, b, c }; | |
| float3 x= float3( a, b, c ); | float3 x= float3( a, b, c ); | |
| float x[3]= float[]( a, b, c ); | float x[3]= { a, b, c }; | float x[3]= { a, b, c }; | |
| type( x ) | (type)x | (type)x | cast |
| matrix * matrix | mul( matrix, matrix ) | matrix * matrix | |
| vector * matrix | mul( vector, matrix ) | vecotr * matrix | |
| uniform | (uniform) | (constant) | |
| in/out , varying/attribute | (: semantics) | [[qualifier]] | HLSL は in/out に function の引数と戻り値を使う。 |
| builtin gl_* variables | system semantics SV_* | [[qualifier]] | |
| GLSL | HLSL | MT | |
| inversesqrt( x ) | rsqrt( x ) | rsqrt( x ) | 1/sqrt( x ) |
| mix( x, y, s ) | lerp( x, y, s ) | mix( x, y, s ) | |
| clamp( x, min, max ) | clamp( x, min, max ) | clamp( x, min, max ) | |
| clamp( x, 0.0, 1.0 ) | saturate( x ) | saturate( x ) | |
| step( edge, x ) | step( edge, x ) | step( edge, x ) | x < edge ? 0.0 : 1.0 |
| smoothstep( min, max, x ) | smoothstep( min, max, x ) | smoothstep( min, max, x ) | clamp( (x-min) / (max-min), 0.0, 1.0 ) |
| GLSL | HLSL | |
| sampler2D samplerobj | Texture2D<type> textureobj | sampler type |
| sampler2DShadow shadowobj | Texture2D<type> shadowobj | sampler type |
| v= texture( samplerobj, texcoord.. ); | v= textureobj.Sample( texcoord.. ); | sampling |
| v= texture2D( sampleobj, texcoord.. ); | v= tex2D( sampler, texcoord.. ); | legacy syntax |
| v= textureGather( sadowobj, texcoord.. ); | v= shadowobj.SampleCmp( texcoord.. ); | pcf shadow map |
| shader | GLSL | HLSL | |
| vsh | in int gl_VertexID; | uint var_name : SV_VertexID ; | |
| in int gl_InstanceID; | uint var_name : SV_InstanceID ; | |
| fsh/psh | out vec4 color; (GL2: gl_FragColor) | float4 … : SV_Target ; (DX9: COLOR) | |
| out float gl_FragDepth; | float … : SV_Depth ; (DX9: DEPTH) | |
Blend
| OpenGL | id | Direct3D 11 |
| GL_ZERO | 1 | D3D11_BLEND_ZERO |
| GL_ONE | 2 | D3D11_BLEND_ONE |
| GL_SRC_COLOR | 3 | D3D11_BLEND_SRC_COLOR |
| GL_ONE_MINUS_SRC_COLOR | 4 | D3D11_BLEND_INV_SRC_COLOR |
| GL_SRC_ALPHA | 5 | D3D11_BLEND_SRC_ALPHA |
| GL_ONE_MINUS_SRC_ALPHA | 6 | D3D11_BLEND_INV_SRC_ALPHA |
| GL_DST_ALPHA | 7 | D3D11_BLEND_DEST_ALPHA |
| GL_ONE_MINUS_DST_ALPHA | 8 | D3D11_BLEND_INV_DEST_ALPHA |
| GL_DST_COLOR | 9 | D3D11_BLEND_DEST_COLOR |
| GL_ONE_MINUS_DST_COLOR | 10 | D3D11_BLEND_INV_DEST_COLOR |
| GL_SRC_ALPHA_SATURATE | 11 | D3D11_BLEND_SRC_ALPHA_SAT |
| GL_CONSTANT_COLOR | 14 | D3D11_BLEND_BLEND_FACTOR |
| GL_ONE_MINUS_CONSTANT_COLOR | 15 | D3D11_BLEND_INV_BLEND_FACTOR |
| GL_SRC1_COLOR | 16 | D3D11_BLEND_SRC1_COLOR |
| GL_ONE_MINUS_SRC1_COLOR | 17 | D3D11_BLEND_INV_SRC1_COLOR |
| GL_SRC1_ALPHA | 18 | D3D11_BLEND_SRC1_ALPHA |
| GL_ONE_MINUS_SRC1_ALPHA | 19 | D3D11_BLEND_INV_SRC1_ALPHA |
| OpenGL | id | Direct3D 11 |
| GL_FUNC_ADD | 1 | D3D11_BLEND_OP_ADD |
| GL_FUNC_SUBTRACT | 2 | D3D11_BLEND_OP_SUBTRACT |
| GL_FUNC_REVERSE_SUBTRACT | 3 | D3D11_BLEND_OP_REV_SUBTRACT |
| GL_MIN | 4 | D3D11_BLEND_OP_MIN |
| GL_MAX | 5 | D3D11_BLEND_OP_MAX |
Buffer
| OpenGL | Direct3D | |
| GL_ARRAY_BUFFER | D3D11_BIND_VERTEX_BUFFER | VertexBuffer |
| GL_ELEMENT_ARRAY_BUFFER | D3D11_BIND_INDEX_BUFFER | IndexBuffer |
| GL_UNIFORM_BUFFER | D3D11_BIND_CONSTANT_BUFFER | ConstantBuffer |
| GL_TRANSFORM_FEEDBACK_BUFFER | D3D11_BIND_STREAM_OUTPUT | |
| |
| GL_VERTEX_ARRAY_BINDING | D3D11InputLayout | |
| OpenGL | Direct3D | |
| GL_STATIC_DRAW | D3D11_USAGE_IMMUTABLE | |
| GL_STREAM_DRAW | D3D11_USAGE_DYNAMIC | |
| GL_DYNAMIC_COPY? | D3D11_USAGE_DEFAULT | |
| GL_*_READ | D3D11_USAGE_STAGING | |
Texture
| OpenGL | Direct3D | |
| S3TC/DXT1 | DXT1/BC1 | |
| S3TC/DXT3 | DXT3/BC2 | |
| S3TC/DXT5 | DXT5/BC3 | |
| RGTC | 3DC/BC4/BC5 | |
| BPTC | BC6H/BC7 | |
| OpenGL | Direct3D9 | Direct3D11 |
| min + mip | mag | min | mag | mip |
| GL_NEAREST | GL_NEAREST | D3DTEXF_POINT | D3DTEXF_POINT | D3DTEXF_NONE | |
| GL_LINEAR | GL_NEAREST | D3DTEXF_LINEAR | D3DTEXF_POINT | D3DTEXF_NONE | |
| GL_NEAREST | GL_LINEAR | D3DTEXF_POINT | D3DTEXF_LINEAR | D3DTEXF_NONE | |
| GL_LINEAR | GL_LINEAR | D3DTEXF_LINEAR | D3DTEXF_LINEAR | D3DTEXF_NONE | |
| GL_NEAREST_MIPMAP_NEAREST | GL_NEAREST | D3DTEXF_POINT | D3DTEXF_POINT | D3DTEXF_POINT | D3D11_FILTER_MIN_MAG_MIP_POINT |
| GL_LINEAR_MIPMAP_NEAREST | GL_NEAREST | D3DTEXF_LINEAR | D3DTEXF_POINT | D3DTEXF_POINT | D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT |
| GL_NEAREST_MIPMAP_NEAREST | GL_LINEAR | D3DTEXF_POINT | D3DTEXF_LINEAR | D3DTEXF_POINT | D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT |
| GL_LINEAR_MIPMAP_NEAREST | GL_LINEAR | D3DTEXF_LINEAR | D3DTEXF_LINEAR | D3DTEXF_POINT | D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT |
| GL_NEAREST_MIPMAP_LINEAR | GL_NEAREST | D3DTEXF_POINT | D3DTEXF_POINT | D3DTEXF_LINEAR | D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR |
| GL_LINEAR_MIPMAP_LINEAR | GL_NEAREST | D3DTEXF_LINEAR | D3DTEXF_POINT | D3DTEXF_LINEAR | D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR |
| GL_NEAREST_MIPMAP_LINEAR | GL_LINEAR | D3DTEXF_POINT | D3DTEXF_LINEAR | D3DTEXF_LINEAR | D3D11_FILTER_MIN_POINT_MAG_MAIP_LINEAR |
| GL_LINEAR_MIPMAP_LINEAR | GL_LINEAR | D3DTEXF_LINEAR | D3DTEXF_LINEAR | D3DTEXF_LINEAR | D3D11_FILTER_MIN_MAG_MIP_LINEAR |
| | | D3DTEXF_ANISOTROPIC | D3DTEXF_ANISOTROPIC | | D3D11_FILTER_ANISOTROPIC |
| OpenGL | Direct3D |
| GL_REPEAT | D3D11_TEXTURE_ADDRESS_WRAP |
| GL_MIRRORED_REPEAT | D3D11_TEXTURE_ADDRESS_MIRROR |
| GL_CLAMP_TO_EDGE | D3D11_TEXTURE_ADDRESS_CLAMP |
| GL_CLAMP_TO_BORDER | D3D11_TEXTURE_ADDRESS_BORDER |
| | D3D11_TEXTURE_ADDRESS_MIRROR_ONCE |
opengl/glsl_hlsl.1404286755.txt.gz · 最終更新: by oga