ユーザ用ツール

サイト用ツール


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
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
  • Mip Linear = Tri Linear Filter
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.1404286511.txt.gz · 最終更新: 2014/07/02 16:35 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki