Unity Compute shaders 컴퓨팅 셰이더
개요 그래픽 카드에서 일반 렌더링 파이프라인과 별도로 작동하는 프로그램 병렬 알고리즘 실행 가능 게임 렌더링 속도 향상 SystemInfo.supports ComputeShaders 지원 정보 예제 코드
https://blog.csdn.net/ak47007tiger/article/details/93411853
Compute shader Assets Unity는 컴퓨팅 셰이더를 저장하는 데 사용되는 요소
.컴퓨터 파일,hlsl 스타일의 언어 사용 아래 shader는 빨간색으로 무늬를 채운다#pragma kernel FillWithRed
RWTexture2D res;
[numthreads(1,1,1)]
void FillWithRed (uint3 dtid : SV_DispatchThreadID)
{
res[dtid.xy] = float4(1,0,0,1);
}
compute shader에는 여러 개의kernel이 있어야 합니다.
#pragma kernel KernelName #pragma kernel KernelA
#pragma kernel KernelB
Invoking compute shaders 에서 셰이더를 계산하는 방법 실행
스크립트에 ComputeShader 참조가 있으며 ComputeShader를 사용합니다.Dispatch 실행 데이터 준비 ComputeBuffer enable RandomWrite의 Render Texture 오픈
Texture samplers in compute shaders 착색기의 텍스쳐와 샘플링 머신 계산
텍스처 소재 구분 없음 유닛에서 명명 규칙에 따라 사용 형식 TextureNameSimplerTexture2D MyTex; SamplerState samplerMyTex
내장 Sampler 사용 Filter mode 설정 wrap mode 설정 형식: textureNameFilterModeWrapMode 크로스 플랫폼 지원
개요unity는hlsl을 특정 플랫폼의shader 언어로 번역합니다
Cross-platform best practices DX11이 지원하는 많은 기능은 Metal or OpenGL ES에서 지원하지 않기 때문에 기능을 적게 사용할 수 있으면 적게 사용합니다out-of-bounds 메모리 경계 오류 피하기 리소스를 초기화합니다.초기화되지 않은 경우 어떤 플랫폼은 0을 받고, 어떤 플랫폼은 NaNs를 받습니다.
모든 자원을 귀속시킨다.어떤if분지에서 일부 자원을 사용하지 않더라도 귀속 Platform-specific differences Metal 텍스쳐의 원자 작동이 지원되지 않음GetDimensions 조회가 지원되지 않습니다. 모든 것을 shader에 전송해야 합니다 OpenGL ES 3.1은 4개의 Compute Buffer만 지원하므로 Opengles 플랫폼을 개발할 때 데이터를 structs로 조립하는 것이 좋습니다 HLSL-only or GLSL-only compute shaders 특정 플랫폼 처리
HLSL 플랫폼이나 수동으로 GLSL을 써야 하는 경우가 발생할 수 있음
CGPROGRAM ENDCG 패키지의 내용은 비HLSL 플랫폼에서 처리되지 않습니다 GLSLPROGRAM ENDGLSL 패키지의 내용은 한 글자씩 GLSL 원본으로 처리됩니다.대상 플랫폼이 OpenGL 또는 GLSL 플랫폼인 경우에만 유효합니다. 자동 변환된 shader는 HLSL 데이터 레이아웃 방식을 사용하고 수동으로 쓴 GLSL은 GLSL 데이터 레이아웃 방식을 사용한다 데이터 layout: 데이터가 메모리에 배치되는 방식은 바이트 정렬과 관련이 있을 수 있음
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Visual Studio를 사용하여 Direct2D 연결 가능 셰이더 컴파일
효과 셰이더 연결은 단일 패스에서 렌더링될 수 있도록 여러 셰이더를 함께 연결하는 Direct2D 최적화입니다.
사용자 지정 셰이더를 작성하는 경우 이 최적화를 활용하기 위해 연결이 호환되는지 확인해야 합니다.
에서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.