WebGL은 OpenGL ES 그래픽스 라이브러리의 기능을 기반으로 하는 웹 브라우저에서 그래픽스를 렌더링하기 위한 API입니다. WebGL 2.0은 OpenGL ES 3.0 기능과 대체로 일치합니다.
기본적으로 Unity 웹은 각 프레임 후에 그리기 버퍼를 지웁니다. 즉, Camera.clearFlags 설정에 관계없이 프레임 버퍼의 내용이 지워집니다. 하지만 인스턴스화 시 이 동작을 변경할 수 있습니다. 이렇게 하려면 웹 템플릿의 index.html 파일에서 webglContextAttributes.preserveDrawingBuffer를 true로 설정합니다.
참고: WebGL 컨텍스트 속성을 설정하는 경우 Power Preference 플레이어 설정을 유지하기 위해 줄을 추가해야 합니다.
script.onload = () => {
config['webglContextAttributes'] = {
preserveDrawingBuffer: true, //Add this line to preserve the Camera.clearFlags setting
powerPreference: {{{ WEBGL_POWER_PREFERENCE }}} //Add this line to preserve the Power Preference Player setting
};
createUnityInstance(canvas, config, (progress) => {
Unity 웹은 베이크된 GI만 지원합니다. 실시간 전역 조명은 현재 웹에서 지원되지 않습니다. 또한 Unity 웹은 비방향성 라이트맵만 지원합니다.
일부 웹 브라우저는 sRGB DXT 텍스처 압축을 지원하지 않습니다. 모든 DXT 텍스처의 런타임 압축 해제로 인해 리니어 렌더링을 사용할 때 렌더링 성능의 품질이 저하될 수 있기 때문입니다.
초기 에셋 데이터 다운로드 크기가 증가하고 네트워크 스트리밍을 방해할 수 있으므로 VideoClipImporter를 사용하여 동영상 클립을 Unity 프로젝트로 임포트할 수 없습니다. 동영상 재생 시 VideoPlayer 컴포넌트의 URL 옵션을 사용하고 에셋을 StreamingAssets/ 디렉토리에 배치하여 브라우저의 빌트인 네트워크 스트리밍을 사용할 수 있습니다.
WebGL 2.0 사양은 GLSLS 셰이더 코드에 몇 가지 제약을 가합니다. 이는 주로 직접 셰이더를 작성할 때 관련이 있습니다. 다음은 몇 가지 제한 사항입니다.
highp, mediump, lowp를 사용하여 변수의 정밀도를 지정할 수 있습니다. 정밀도를 지정하지 않으면 셰이더가 기본 정밀도인 mediump를 사용합니다. precision을 사용하여 변수 블록의 정밀도를 지정할 수도 있습니다.참고: 웹에서 사용 가능한 메모리가 제한되어 있기 때문에 불필요하게 메모리를 사용할 수 있는 원치 않는 셰이더 배리언트를 포함하지 마십시오. 따라서 셰이더 배리언트 및 셰이더 스트리핑에 익숙해지면 Graphics Settings의 Always-included Shaders 섹션에 배리언트가 너무 많은 셰이더(예: Unity의 스탠다드 셰이더)를 추가하지 않는 것이 좋습니다.
Unity 웹은 다른 Unity 플랫폼과 유사하게 동적 폰트 렌더링을 지원합니다. 하지만 사용자 컴퓨터에 설치된 폰트에 액세스할 수 없으므로 사용하려는 폰트(국제 문자의 폴백 폰트나 폰트의 굵게/이탤릭체 버전 등)를 프로젝트 폴더에 포함시키고 폴백 폰트 이름으로 설정해야 합니다.
WebGL은 브라우저와 GPU 조합 대부분에 안티앨리어싱을 지원합니다. 이를 사용하려면 웹 플랫폼의 기본 품질 설정에서 안티앨리어싱을 활성화해야 합니다.
Unity 웹은 모든 반사 프로브를 지원합니다.
Unity에는 WebGL 2.0 API에 대한 지원이 포함되어 있어 OpenGL ES 3.0 수준의 렌더링 성능을 웹에서 사용할 수 있습니다. Unity 웹 빌드는 기본적으로__ WebGL__웹 브라우저에서 2D 및 3D 그래픽스를 렌더링하는 JavaScript API입니다. Unity 웹 빌드 옵션을 사용하면 콘텐츠를 JavaScript 프로그램으로 퍼블리시할 수 있습니다. 이 프로그램은 HTML5 기술과 WebGL 렌더링 API를 사용하여 Unity 콘텐츠를 웹 브라우저에서 실행합니다. 자세한 정보
See in Glossary 2.0 API를 지원합니다.
WebGL 2.0이 지원되는 브라우저는 다음과 같은 장점이 있습니다.