본문으로 바로가기
반응형

 

참조 링크 : http://dench.flatlib.jp/start

Unity Shader target features : http://illu.tistory.com/1248



 

Vertex shader comparison




    VS 1.0 = Unreleased 3dfx Rampage w/SAGE coprocessor, DirectX 8.
    VS 1.1 = GeForce 3 and Radeon 8500, DirectX 8.
    VS 2.0 = Shader Model 2.0 specification, Radeon 9500-9800/X300-X600, DirectX 9.
    VS 2.0a = GeForce FX/PCX-optimized model, DirectX 9.0a.
    VS 3.0 = Shader Model 3.0, Radeon X1000 and GeForce 6, DirectX 9.0c.
    VS 4.0 = Shader Model 4.0, Radeon HD 2000 and GeForce 8, DirectX 10.
    VS 4.1 = Shader Model 4.1, Radeon HD 3000 and GeForce 200, DirectX 10.1.
    VS 5.0 = Shader Model 5.0, Radeon HD 5000 and GeForce 400, DirectX 11.


Pixel shader comparison



    PS 1.0 = Unreleased 3dfx Rampage, DirectX 8.
    PS 1.1 = GeForce 3, DirectX 8.
    PS 1.2 = 3Dlabs Wildcat VP, DirectX 8.0a.
    PS 1.3 = GeForce 4 Ti, DirectX 8.0a.
    PS 1.4 = Radeon 8500-9250, DirectX 8.1.
    PS 2.0 = Shader Model 2, Radeon 9500-9800/X300-X600, DirectX 9.
    PS 2.0a = GeForce FX/PCX-optimized model, DirectX 9.0a.
    PS 2.0b = Radeon X700-X850 shader model, DirectX 9.0b.
    PS 3.0 = Shader Model 3.0, Radeon X1000 and GeForce 6, DirectX 9.0c.
    PS 4.0 = Shader Model 4.0, Radeon HD 2000 and GeForce 8, DirectX 10.
    PS 4.1 = Shader Model 4.1, Radeon HD 3000 and GeForce 200, DirectX 10.1.
    PS 5.0 = Shader Model 5.0, Radeon HD 5000 and GeForce 400, DirectX 11.
 

 

이를 각 그래픽스 라이브러리와 비교하면 아래 표와 같다.

OpenGLGLSLDirect3DShader Model
2.11209.02.0
3.333010.04.0
4.242011.05.0

 

OpenGLDirect3D

Vertex Shader

Vertex Shader

Tessellation Control Shader

Hull Shader

Tessellation Evaluation Shader

Domain Shader

Geometry Shader

Geometry Shader

Fragment Shader

Pixel Shader

Compute Shader

Compute Shader

 





 

OpenGL ES에서는 대응되는 Feature는 다음과 같다.

OpenGLOpenGL ESDirectXShader Model
OpenGL 1. XOpenGL ES 1. x7Fixed Pipeline
OpenGL 2. XOpenGL ES 2. 093
OpenGL 3. XOpenGL ES 3. 0104
OpenGL 4. X--115

 



 

GPU마다 기능의 차이는 있을 수 있지만, 최소한의 비교는 다음과 같다.


 

 GLES 2. 0GLES 3. 0Direct X
Vertex Uniform Vectors128256(VSH Constant)
Fragment Uniform Vectors16224(PSH Constant)
Vertex Attribs816(VSH Input)
Vertex Output Vectors816(VSH output)
Fragment Input Vectors816(PSH Input)
Draw Buffers14(PSH output)
Vertex Texture Image Units016(Vertex texture)
Texture Image Units816(Pixel texture)
Combined Texture Image Units832 

 


OpenGL ES 3.0은 GeometryShader가 없지만, 이것은 OpenGL 3.0도 마찬가지. GeometryShader이 추가 된 것은 OpenGL 3.2버젼 부터인데 이쪽으로 모바일 디바이스도 지원이 늘어날듯.

 

 

OpenGL ES 2.0 (ShaderModel 3.0-)


PixelShader는 16bit 부동 소수점 연산 이상을 지원
Shader Constant (Uniform) 수는 Direct3D 9 3.0 반
Texture Fetch 제한 없음
24bit depth buffer는 옵션

 



OpenGL ES 3.0 (ShaderModel 4.0-)

 

 PC에서는 ES 2.0과 3.0 차이가 있는데 모바일에서는 호환성을 강하게 유지하고 있다.(ES 1,1과 ES 2.0은 거의 호환되지 않지만 ES 3.0과는 하위호환은 큰 문제 없는 이유가 이때문... 그래서 OpenGL 4.0은 또 2.0까지 지원한다...)


 기능적으로는 OpenGL 3.3 및 DirectX 10의 기능을 모바일에 맞추어 간략화 한 버젼이라 생각하면 됨.


 



OpenGL ES 3.1

 

 0.1 버젼 업그레이드지만 Direct X 11 / OpenGL 4.X 기반의 모바일 API. 가장 큰 특징은 Compute Shader에 대응하는 것 그러나,  Tessellation은 지원하지 않음(해봤자 굴리지도 못하겠지만...;;;)

 

 

Unity Shader code에서 각 Shader Model에 맞는 컴파일러 타겟 설정은 다음 링크를 참조..

Unity Documents




독립적인 버텍스 및 프레그먼트(픽셀) 셰이더

간접 그리기 명령(Indirect Draw Command)

 

Android 버젼 5.0 이상부터 지원

 Adreno 400 시리즈

 Mali T6xx(midgrard) 시리즈 이후

 Nvidia Tegra K1(Android, Linux)

 Nvidia Tegra X1(Android)

 PowerVR 시리즈 6, 6XE, 7XE 및 7XT(Linux, Android)

 Vivante GC2000 시리즈 이후(GC 800및 GC1000 옵션)

 

Android

  Samsung Galaxy S5 : GSM버젼, Cat.6 지원, LTE 듀얼 버젼 미지원, S5 Active 미지원, Sport 미지원, mini 미지원, Neo 지원.

  Samsung Galaxy S6, S6 Active

  Samsung Galaxy Note 3 : Exynos 5420 모델지원, Snapdragon 800 버젼, 듀얼버젼 미지원.

  Samsung Galaxy Note 3 Neo : Exynos 5260 모델지원, Snapdragon 800 버젼, 듀얼버젼 미지원.

  Samsung Galaxy Note 3 Lite : 미지원

  Samsung Galaxy Note 4, Note 4 Edge

  LG G3 : Cat.6 모델만(Snapdragon 801 버젼 미지원), G3 Stylus, G3 Screen

  LG G4, G4s, G4c(미지원), G4 stylus(미지원)

  LG G5 시리즈

  Sony Xperia Z5

  Sony Xperia X 

  Sony Xperia Z4 타블렛

 

 

IOS

 iphone 5S

 ipad 5세대, air, mini2, iPad Pro





OpenGL ES 3.1 AEP(Android Extension Pack)

2014년 3월 공개

지오메트리 셰이더, 테셀레이션 스테이지, ASTC 텍스쳐 압축 3가지 대표적인 지원 feature.

Adnroid Lollipop 이상부터 지원(5.0)




OpenGL ES 3.2


2015년 8월 공개.


     지오메트리 및 테셀레이션 쉐이더로 GPU에서 복잡한 장면을 효율적으로 처리.
     부동 소수점 렌더링 대상으로 고정밀 컴퓨팅 작업의 유연성 향상
     텍스쳐 처리에 사용되는 메모리 풋 프린트와 대역폭을 줄이기위한 ASTC 압축.
     정교한 합성 및 여러 색상의 첨부 파일 처리를위한 향상된 혼합.
     텍스처 버퍼, 멀티 샘플 2D 배열 및 큐브 맵 배열과 같은 고급 텍스처 대상.
     코드 개발 및 보안 실행을위한 디버그 및 견고성 기능.

 

자세한  Shader feature 항목은 다음 링크를 참조해주세요

https://en.wikipedia.org/wiki/OpenGL_ES


반응형