opengl:glsl_hlsl
文書の過去の版を表示しています。
GLSL/HLSL 命令対応表
GLSL | HLSL | |
float | float | |
| float1 | |
vec2 | float2 | |
vec3 | float3 | |
vec4 | float4 | |
mat3 | float3x3 | |
mat4 | float4x4 | |
int | int | |
ivec2/ivec3/ivec4 | int2/int3/int4 | |
bool | bool | |
bvec2/bvec3/bvec4 | bool2/bool3/bool4 | |
lowp float | | 少なくても 10bit fixed 以上 |
mediump float | half | 少なくても 16bit fp 以上 |
highp float | float | 32bit fp |
double | double | 64bit fp |
vec3 x= vec3( a, b, c ); | float3 x= { a, b, c }; | |
float3 x= float3( a, b, c ); | |
float x[3]= float[]( a, b, c ); | float x[3]= { a, b, c }; | |
type( x ) | (type)x | cast |
matrix * matrix | mul( matrix, matrix ) | |
vector * matrix | mul( vector, matrix ) | |
uniform | (uniform) | |
in/out , varying/attribute | (semantics) | HLSL は in/out に function の引数と戻り値を使う。 |
builtin gl_* variables | system semantics SV_* | |
GLSL | HLSL | |
inversesqrt( x ) | rsqrt( x ) | 1/sqrt( x ) |
mix( x, y, s ) | lerp( x, y, s ) | |
clamp( x, min, max ) | clamp( x, min, max ) | |
clamp( x, 0.0, 1.0 ) | saturate( x ) | |
step( edge, x ) | step( edge, x ) | x < edge ? 0.0 : 1.0 |
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.1375006926.txt.gz · 最終更新: 2013/07/28 19:22 by oga