ユーザ用ツール

サイト用ツール


opengl:glsl_hlsl

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
opengl:glsl_hlsl [2013/05/16 20:38] – [Texture] ogaopengl:glsl_hlsl [2014/09/13 16:03] – [GLSL/HLSL 命令対応表] oga
行 2: 行 2:
  
  
-^ GLSL                              ^ HLSL                              ^ +^ GLSL                              ^ HLSL                           ^ Metal                        ^    ^ 
-| float                             | float                          |    | +| float                             | float                          | float                        |    | 
-                                  | float1                            +--                                | float1                         --                           | HLSLのみ single vector 可能  
-| vec2                              | float2                         |    | +| vec2/vec3/vec4                    | float2/float3/float4           float2/float3/float4         |    | 
-| vec3                              | float3                         |    | +mat3                              float3x3                       | float3x3                     |    | 
-vec4                              float4                         |    | +mat4                              float4x4                       | float4x4                     |    | 
-mat3                              float3x3                       |    | +mat3x4                            float3x4                       | float3x4                     |    | 
-mat4                              float4x4                       |    | +| int                               | int                            | int                          |    | 
-| int                               | int                            |    | +| ivec2/ivec3/ivec4                 | int2/int3/int4                 | int2/int3/int4                  | 
-| ivec2/ivec3/ivec4                 | int2/int3/int4                    | +| uint                              | uint                           | uint  (unsigned int)            | 
-| bool                              | bool                              | +| uvec2/uvec3/uvec4                 | uint2/uint3/uint4              | uint2/uint3/uint4            |    | 
-| bvec2/bvec3/bvec4                 | bool2/bool3/bool4              |    | +| bool                              | bool                           | bool                         |    | 
-| lowp float                        |                                少なくても 10bit fixed 以上 | +| bvec2/bvec3/bvec4                 | bool2/bool3/bool4              | bool2/bool3/bool4            |    | 
-| mediump float                     | half                           少なくても 16bit fp 以上 | +| lowp float                        | min10float                     | --                           | 10bit fixed 以上 | 
-| highp float                       | float                          | 32bit fp  | +| mediump float                     | half (min16float)              | half                         | 16bit fp 以上  
-| double                            | double                         | 64bit fp  | +| highp float                       | float                          | float                        | 32bit fp  | 
-| vec3 x= vec3( a, b, c );          | float3 x= { a, b, c };            +| double                            | double                         | --                           | 64bit fp  
-| :::                               | float3 x= float3( a, b, c );      | +| highp int / uint                  | int / uint                     | int / uint                   | 32bit int  | 
-| float x[3]= float[]( a, b, c );   | float x[3]= { a, b, c };          | +| mediump int / uint                | min16int / min16uint           | short / ushort               | 16bit int 以上 
-| type( x )                         | (type)x                        | cast  | +| lowp int  / uint                  | min12int                       | --                           | 9bit int 以上 
-| matrix * matrix                   | mul( matrix, matrix )          |    | +| --                                | --                             | char / uchar                 | 8bit int   
-| vector * matrix                   | mul( vector, matrix )          |    | +| vec3 x= vec3( a, b, c );          | float3 x= { a, b, c };         float3 x= { a, b, c };       
-| uniform                           | (uniform)                      |    | +| :::                               | float3 x= float3( a, b, c );   | float3 x= float3( a, b, c ); |    | 
-| in/out , varying/attribute        | (semantics)                    | HLSL は in/out に function の引数と戻り値を使う。   | +| float x[3]= float[]( a, b, c );   | float x[3]= { a, b, c };       | float x[3]= { a, b, c };     |    | 
-| builtin gl_* variables            | system semantics SV_*          |    |+| type( x )                         | (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        | var : semantics                | <nowiki>var [[qualifier]]</nowiki>  | HLSL は in/out に function の引数と戻り値を使う。   | 
 +| builtin gl_* variables            | system semantics SV_*          | <nowiki>var [[qualifier]]</nowiki>  |    |
  
  
行 33: 行 38:
  
  
-^ 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                                                  +^ GLSL                        ^ HLSL                       Metal                      ^    
-sampler2D samplerobj                       | Texture2D<type> textureobj            sampler type    +inversesqrt( x )            rsqrt( x )                 | rsqrt( x )                 | 1/sqrt( x ) 
-sampler2DShadow shadowobj                  Texture2D<type> shadowobj             | sampler type    | +mix( x, y, s )              lerp( x, y, s )            | mix( x, y, s )             |    | 
-v= texturesamplerobjtexcoord.. )     v= textureobj.Sampletexcoord.. );   sampling        +clampxmin, max )        | clamp( x, min, max  )      | clampx, min, max          
-v= texture2Dsampleobjtexcoord.. );     v= tex2Dsampler, texcoord.. );      legacy syntax   +clampx0.0, 1.0        saturate             saturate( x )              |    
-v= textureGathersadowobjtexcoord.. ) v= shadowobj.SampleCmptexcoord.. ); | pcf shadow map  |+stepedgex )             | step( edge, x )            | step( edge, x )            | x < edge ? 0.0 : 1.0 | 
 +| smoothstep( min, max, x )   | smoothstep( min, max, x )  | smoothstepmin, max, x )  | clamp( (x-min) / (max-min), 0.0, 1.) |
  
  
-^ 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)            | 
  
 +^ GLSL                                       ^ HLSL                                  ^ Metal                                    ^                 ^
 +| sampler2D samplerobj                       | Texture2D<type> texobj                | texture2d<type> texobj                   | sampler type    |
 +| sampler2DShadow depthobj                   | Texture2D<type> depthobj              | depth2d<type> depthobj                   | sampler type    |
 +| v= texture( samplerobj, texcoord.. );      | v= texobj.Sample( texcoord.. );       | v= texobj.sample( sampler, texcoord .. ) | sampling        |
 +| v= texture2D( sampleobj, texcoord.. );     | v= tex2D( sampler, texcoord.. );      | --                                       | legacy syntax   |
 +| v= textureGather( depthobj, texcoord.. );  | v= depthobj.SampleCmp( texcoord.. );  | v= depthobj.sample_compare( ... )        | pcf shadow map  |
 +
 +
 +
 +
 +^ shader  ^ GLSL                                  ^ HLSL                                    ^ Metal                           ^
 +| vsh     | in int gl_VertexID;                   | uint var_name : SV_VertexID ;           | <nowiki>uint var_name [[vertex_id]];</nowiki>    |
 +| :::     | in int gl_InstanceID;                 | uint var_name : SV_InstanceID ;         | <nowiki>uint var_name [[instance_id]];</nowiki>  |
 +| :::     | out vec4 gl_Position;                 | float4 ... : SV_Position ;              | <nowiki>float4 ... [[position]];</nowiki>    |
 +| fsh/psh | out vec4 color; (GL2: gl_FragColor)   | float4  ... : SV_Target ; (DX9: COLOR)  | <nowiki>half4 ... [[color(0)]];</nowiki>     |
 +|  :::    | out float gl_FragDepth;               | float ... : SV_Depth ; (DX9: DEPTH)     | <nowiki>float ... [[depth(less)]];</nowiki>  |
  
  
行 104: 行 114:
 | GL_UNIFORM_BUFFER               | D3D11_BIND_CONSTANT_BUFFER  | ConstantBuffer   | | GL_UNIFORM_BUFFER               | D3D11_BIND_CONSTANT_BUFFER  | ConstantBuffer   |
 | GL_TRANSFORM_FEEDBACK_BUFFER    | D3D11_BIND_STREAM_OUTPUT    |           | | GL_TRANSFORM_FEEDBACK_BUFFER    | D3D11_BIND_STREAM_OUTPUT    |           |
 +^    ^^^
 +| GL_VERTEX_ARRAY_BINDING         | D3D11InputLayout            |          |
 +
 +
  
  
行 127: 行 141:
  
  
-^  OpenGL                                      ^^  Direct3D9                                         ^^^  Direct3D11                         ^ +^  OpenGL                                      ^^  Direct3D9                                          ^^^  Direct3D11                         ^ 
-^ min + mip                   ^ mag             ^ min               ^ mag             ^ mip            |          :::                        | +^ min + mip                   ^ mag             ^ min               ^ mag             ^ mip             |          :::                        | 
-| GL_NEAREST                  | GL_NEAREST      | D3DTEXF_POINT     | D3DTEXF_POINT   | D3DTEXF_NONE   |        | +| GL_NEAREST                  | GL_NEAREST      | D3DTEXF_POINT     | D3DTEXF_POINT   | D3DTEXF_NONE    |        | 
-| GL_LINEAR                   | GL_NEAREST      | D3DTEXT_LINEAR    | 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_NEAREST                  | GL_LINEAR       | D3DTEXF_POINT     | D3DTEXF_LINEAR  | D3DTEXF_NONE    |        | 
-| GL_LINEAR                   | GL_LINEAR       | D3DTEXF_LINEAR    | 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  |
  
-| GL_NEAREST_MIPMAP_NEAREST   | GL_NEAREST      | D3DTEXF_POINT     | D3DTEXF_POINT   | D3DTEXF_POINT  | D3D11_FILTER_MIN_MAG_MIP_POINT      | 
-| GL_LINEAR_MIPMAP_NEAREST    | GL_NEAREST      | D3DTEXT_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        | 
  
  
  
  
opengl/glsl_hlsl.txt · 最終更新: 2016/09/12 14:53 by oga

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki