아니 뭐 그렇다고 원래 있던 걸 전부 배제하겠다는 얘기는 아니지만,
불확실하더라도 한 번 내 식대로 가보려고 한다. 근데 이미 있는지도 모르겠다.
오늘 학교에서 내 맘대로 생각해낸 장면 관리 방법.
장면큐 : Scene Queue (가칭)
개요 : 렌더링 전에 장면 노드를 정렬하여 비슷한 장면 노드를 묶음으로써 응집성을 높여 성능을 꾀하기 위한 방법.
본문 :
장면노드들을 전부 순회해서 프리렌더링을 먼저 한다. 프리렌더링에서는 상대 변환을 절대 변환으로 고치는 등의 작업이 이루어지고, 그 작업이 모두 끝나면 장면큐에 넣는다.
노드들의 프리렌더링의 모두 끝나면 그 장면큐를 성능을 위해서 알맞게 정렬한다. 이렇게 정렬함의 이유는 성격(셰이더 등)이 비슷한 노드들을 묶음으로써 불필요한 상태 전환을 줄임으로써 성능을 꾀하기 위함이다.
비트플래그를 사용하면 노드의 성격의 표현과 정렬이 쉬워지고, 상태 전환의 비용이 높은 항목을 상위 비트에 둠으로써 효과적으로 상태 전환을 줄일 수 있다.
막상 써놓고 보니, 이런 것이 없는 게 더 이상할지도 모르겠다.
불확실하더라도 한 번 내 식대로 가보려고 한다. 근데 이미 있는지도 모르겠다.
오늘 학교에서 내 맘대로 생각해낸 장면 관리 방법.
장면큐 : Scene Queue (가칭)
개요 : 렌더링 전에 장면 노드를 정렬하여 비슷한 장면 노드를 묶음으로써 응집성을 높여 성능을 꾀하기 위한 방법.
본문 :
장면노드들을 전부 순회해서 프리렌더링을 먼저 한다. 프리렌더링에서는 상대 변환을 절대 변환으로 고치는 등의 작업이 이루어지고, 그 작업이 모두 끝나면 장면큐에 넣는다.
노드들의 프리렌더링의 모두 끝나면 그 장면큐를 성능을 위해서 알맞게 정렬한다. 이렇게 정렬함의 이유는 성격(셰이더 등)이 비슷한 노드들을 묶음으로써 불필요한 상태 전환을 줄임으로써 성능을 꾀하기 위함이다.
비트플래그를 사용하면 노드의 성격의 표현과 정렬이 쉬워지고, 상태 전환의 비용이 높은 항목을 상위 비트에 둠으로써 효과적으로 상태 전환을 줄일 수 있다.
막상 써놓고 보니, 이런 것이 없는 게 더 이상할지도 모르겠다.






