컴퓨터 용어 정리 76
-
경로탐색 알고리즘 중 하나로, 시작점부터 목표점까지의 최단경로를 찾는데 사용되는 알고리즘 으로, 그래프 탐색 알고리즘중 하나이다. 목표 꼭짓점까지 가는 최단경로를 찾아내는 알고리즘으로, 각 꼯짓점에 대해 그 꼭짓점을 통과하는 최상의 경로를 추정하는 휴리스틱( huristic )추정값을 매기는 방법을 사용한다. 기본적인 개념은 다이스트라 알고리즘과 비슷하게 들어간다. 기본정의 시작지점에서 목표지점까지 가는 최단경로를 찾는데 사용되는 알고리즘이다. f(n)이 최소가 되는 노드를 우선해서 탐색한다. f(n) = g(n) + h(n)이며, g(n) = start -> n 까지의 비용 h(n) = n에서 End까지의 비용이다. 휴리스틱 함수 휴리스틱은 정해진 알고리즘을 사용하여, 가능한 최소비용에 대한 해를 구하..
-
어떠한 문제를 해결하기 위해 사용되는 규칙 또는 방법으로, 최적의 해를 찾는데 도움이 되는 추정치를 의미한다. 전체 탐색 공간을 줄이고, 계산비용을 낮추기 위해 사용되며, 일반적으로 근사값을 제공하게 된다. 휴리스틱 함수는 다음 두가지 특성을 가져야 한다. 가능한 실제비용을 넘기지 말아야 한다. 휴리스틱 함수는 실제 비용보다 작거나 같아야 한다. 즉, 휴리스틱이 실제 비용을 과하게 추정하지 말아야 한다. 계산이 빠르고 간결해야 한다. 휴리스틱 함수는 빠르게 계산되어야 한다. 만약, 계산시간을 합쳤을 때 그냥 가는거보다 느리다면, 그냥 이동시키는게 더 낫기 때문이다.
-
컴퓨터 쉐이더 라고 하는 방식이다. 이름이 조금구리기는 한데, 컴퓨팅 연산을 그래픽카드에서 진행하는 쉐이더를 의미한다. 데이터를 전부 Shader에 전달하고, 쉐이더에서 데이터연산을 처리하는 과정을 이야기한다. Buffer형태로 데이터를 전달하고, DeviceContext->Map형태로 데이터가 제공된다. //ComputePicking.hlsl cbuffer RayBuffer : register(b0) { float3 pos; uint triangleSize; float3 dir; } struct InputDesc { float3 v0, v1, v2; }; StructuredBuffer input : register(t0); struct OutputDesc { int picked; float distan..
-
Map과 Unmap은 동적으로 데이터를 매핑하여 CPU에서 GPU메모리에 직접 엑세스 할 수 있게 해준다. 즉, CPU에서 GPU메모리의 포인터를 관리한다고 생각하면 이해하기가 편할것이다. 그렇기 때문에, 큰 데이터를 업데이트할 때 효과적이다. 동적으로 메모리를 매핑하고 CPU에서 데이터를 직접 변경한 뒤, 다시 언매핑하여 GPU로 복사해줄 수 있다. 장점 대량의 데이터를 효율적으로 업데이트 할 수있다. GPU와 CPU간의 직접적인 메모리 엑세스가 가능함으로, 특별한 복사대입과정이 필요가 없다. 단점 코드가 UndateSubresource에 비해 더 복잡해진다. 동기화와 메모리 일관성이 해쳐지면 문제가 발생할 수 있다. 주의점! MAP을 선언하고, 데이터를 수정하고 난뒤, Unmap을 해야 데이터가 정상..
-
-