버텍스 쉐이더에서는 유니폼 만 사용하여 벡터를 계산합니다. 따라서이 계산의 결과는 정점 셰이더의 모든 인스턴스화에 대해 동일합니다. 이 계산을 CPU에서 수행하고 유니폼으로 업로드해야합니까? 그런 계산이 10 번이라면? 이런 방식으로 많은 유니폼을 업로드하면 CPU-GPU 통신 속도가 너무 느려져서 버텍스 쉐이더에서 이러한 값을 다시 계산하는 속도가 실제로 빨라 집니까?셰이더 프로그래밍에서 유니폼을 사용해야하는시기는 언제입니까?
1
A
답변
1
저는 실제로 제복/정점 개수 비율에 따라 다릅니다. 꼭지점이 균일 변수 이상인 경우 가장 자주 사용되는 시나리오 인 CPU 유니폼을 계산하는 것이 좋습니다.
유니폼 값이 많고 계산이 복잡한 경우 (즉, 역행렬), 정점 수가 낮을 때 CPU로드를 줄이고 GPU에서 계산을 수행하는 것이 좋습니다.
많은 임계 값이 셰이더 실행에 영향을주기 때문에 비율 임계 값은 결정하기가 어렵습니다. 일반적으로 셰이더 실행을 오프로드하기 위해 대부분의 유니폼을 CPU에서 계산하는 것이 좋습니다.
참고 : 일단 유니폼 변수를 설정하면 셰이더 프로그램은 다시 연결될 때까지 값을 유지합니다.
관련 문제
- 1. 일반적으로 셰이더 유니폼을 사용하는 방법은 무엇입니까?
- 2. WCF에서 TCP 바인딩을 사용해야하는시기는 언제입니까?
- 3. 인라인 대신 __forceinline을 사용해야하는시기는 언제입니까?
- 4. MVVM에서 사용하는 경우 속성과 변환기를 사용해야하는시기는 언제입니까?
- 5. asp.net mvc 2에서 비동기 컨트롤러를 사용해야하는시기는 언제입니까?
- 6. 일반 PropertyMetadata보다 FrameworkPropertyMetadata 또는 UIPropertyMetadata를 사용해야하는시기는 언제입니까?
- 7. ColdFusion 응용 프로그램에서 Java를 사용해야하는시기는 언제입니까?
- 8. MySQL 테이블에서 "NOT NULL"을 사용해야하는시기는 언제입니까?
- 9. DataContract 대신 메시지 계약을 사용해야하는시기는 언제입니까?
- 10. Java에서 인터페이스에서 추상 메소드를 사용해야하는시기는 언제입니까?
- 11. 웹 응용 프로그램에서 프로파일을 사용해야하는시기는 언제입니까?
- 12. 하스켈의 데이터 선언에 레코드 구문을 사용해야하는시기는 언제입니까?
- 13. SQL Server에서 Begin/End Blocks 및 Go 키워드를 사용해야하는시기는 언제입니까?
- 14. JavaScript에서 delete vs setting 요소를 null로 사용해야하는시기는 언제입니까?
- 15. "if"를 사용하여 오류를 검사해야하는시기와 예외를 사용해야하는시기는 언제입니까?
- 16. C#에서는 struct를 언제 사용해야합니까? 클래스를 사용해야하는시기는 언제입니까?
- 17. android 위젯 또는 응용 프로그램에서 singleTop launchMode를 사용해야하는시기는 언제입니까?
- 18. .NET 프레임 워크에서 XML 직렬화와 이진 직렬화를 사용해야하는시기는 언제입니까?
- 19. Objective-C 메소드 이름에서 "and"를 사용해야하는시기는 언제입니까?
- 20. 언제 UdpClient.BeginReceive를 사용해야합니까? 백그라운드 스레드에서 UdpClient.Receive를 사용해야하는시기는 언제입니까?
- 21. Objective-C로 iPhone 프로그래밍에서 객체를 할당하고 초기화하는시기는 언제입니까?
- 22. ID3DXEffect에서 모든 셰이더 상수 (유니폼)를 얻으려면 어떻게해야합니까?
- 23. 프로그래밍에서 상수를 사용하는 이유는 무엇입니까?
- 24. pygtkglext를 사용하는 셰이더
- 25. GLSL 셰이더 법선 생성
- 26. 셰이더 언어 만들기
- 27. WebGL 셰이더 생성 문제
- 28. HLSL : 다중 패스 셰이더?
- 29. WebGL의 내 첫 셰이더
- 30. 셰이더 컴파일러는 어떻게 작동합니까?