나는 화합을 사용하고 있으며 HLSL을 사용하여 GPU에 바이트 배열을 보내려고합니다. 내가 ByteAddressBuffer에 대해 알고 있지만, 나는 그것을 사용하는 방법을 모른다. 나는 단지 "바이트"를 GPU에 보내는 방법을 알고 싶을뿐입니다. 내 계산 쉐이더에 StructuredBuffer<byte>
을 갖고 싶습니다.바이트 []를 GPU로 보내시겠습니까?
답변
셰이더 부분의 경우 StructuredBuffer
을 사용할 수 있습니다. HLSL에 바이트 데이터 유형이 있는지 정확히 알지 못하므로이 예제에서는 정수 만 사용합니다.
쉐이더 코드 : C#을 측면에서
Shader "Name" {
SubShader {
...
StructuredBuffer<int> _Data;
...
}
}
, 당신은 당신의 쉐이더에 해당하는 재료를 가지고, 그것은 mat
하고 바이트 배열 bArr
를 호출 할 수 있습니다. 또한 gpu 버퍼를 만들어서 셰이더에 바인딩 할 수 있습니다 : ComputeBuffer dataBuf = new ComputeBuffer(bArr.Length, sizeof(int))
.
마지막으로, GPU dataBuf.SetData(bArr)
에 배열을로드하고 내 컴퓨 트 쉐이더에서 StructuredBuffer < 바이트>를 갖고 싶어 셰이더 mat.SetBuffer("_Data", dataBuf);
편집
에 버퍼를 바인딩합니다.
내가 읽은 것으로부터 할 수 없습니다. HLSL에는 아무런 byte
데이터 유형도 없습니다 (단일체가 사용하는 CG도 아닙니다). 위의 예는 표준 버텍스/프래그먼트 셰이더입니다. 다른 질문에서 계산 쉐이더를 사용하면 answer을 참조 할 수 있습니다. 그것을 당신의 필요에 따라 보강하십시오. 이미 코멘트에 기입 했으므로 byte
데이터에 int
을 사용하지 않으므로 24 비트가 낭비되는 경우 비트 쉬프트로 1 int
에 4 bytes
을 펀치 할 수 있습니다. 셰이더 모델 4 (DX10.1 또는 그 이상)를 사용하는 경우 셰이더에서 시프 팅 작업을 사용할 수 있어야합니다.
구조화 된 버퍼를 사용하는 방법을 알고 있고 int를 GPU에 보내는 방법을 알고있다. "byte"를 GPU에 보내는 법을 알고 싶습니다. @xyLe_ – None
HLSL이나 CG (byte가 기본으로 사용하는 것입니다)에 'byte'데이터 유형이 없습니다. CG에서는'char'와 함께 갈 수 있지만'int'만으로는 갈 수 없습니까? – TheDjentleman
만약 당신이 실제로 사용 된 공간을 가지고 있다면, 단지 1 바이트에 4 바이트를 넣고 비트 쉬프트를 사용하십시오. – TheDjentleman
- 1. XML로 HTTP.post()를 보내시겠습니까?
- 2. C# 캐스트 바이트 [*, *, *]를 바이트 []
- 3. CPU보다 느린 GPU로 찾기
- 4. GPU로 계산하는 간단한 방법
- 5. GPU로 RAM 공유
- 6. emgu 코드를 GPU로 변환
- 7. 블록 스케줄링이 GPU로 수행되는지 여부?
- 8. 안전하지 않은 바이트 *를 바이트 []로 변환
- 9. 관리 바이트 [] 버퍼에서 바이트 **를 얻는 방법
- 10. 내 바이트 []를 선언해야합니까
- 11. libcurl과 함께 "요청 페이로드"를 보내시겠습니까?
- 12. jquery 자바 스크립트에서 name = ""을 (를) 보내시겠습니까?
- 13. 방법 : setAttribute 5 % + var x %를 보내시겠습니까?
- 14. cudaMallocPitch에서 할당 한 메모리 (바이트)를 계산하는 방법
- 15. winsock을 통해 propertybag를 보내시겠습니까?
- 16. 비디오 바이트 데이터를 자바 스크립트에서 플래시 플레이어로 보내시겠습니까?
- 17. LWJGL - 동적으로 VBO 데이터를 보내시겠습니까?
- 18. GPU로 그려진 그래픽의 화면 캡처?
- 19. 여러 GPU로 하나의 모델을 연습하십시오
- 20. Python-VTK : 계산을 GPU로 오프로드
- 21. 여러 Gpu로 Tensorflow 처리 성능
- 22. GPU로 여러 .dat 파일 읽기
- 23. gpu로 dlib를 사용하는 세그먼트 오류
- 24. GPU로 asyncronoustask를 실행할 수 있습니까?
- 25. QML에서 "바이트"를 처리하는 방법?
- 26. 를 Base64 인코딩 바이트 VBA
- 27. jp2의 바이트 []를 jpg 파일
- 28. Arduino에서 바이트 *를 문자열로 변환
- 29. void *를 바이트 배열로 변환
- 30. ImageIO를 사용하여 이미지 스트림을 보내시겠습니까?
왜 내가 너무 많은 down-votes를 얻었습니까? 내가 놓친 것이 있습니까? – None
당신의 질문은 당신이 당신의 문제를 해결하려고 시도한 것을 실제로 나타내지는 않습니다. (나는 그 이유라고 생각한다) – TheDjentleman