지형 텍스쳐 스플래팅의 여러가지 시도


지형 스펙
n*n개의 타일베이스 지형, 각 타일은 m*m개의 셀을 포함함.
셀은 셀간격에 맞추어 정렬되어있다.

텍스쳐 스펙
타일개수 * 셀개수 * 2 (2대신 셀간격으로 하면 퀄리티는 높아지지만 메모리낭비문제로 2로 제한)를 갖는 전 맵을 감싸는 알파텍스쳐 3장, 스플래팅용 텍스쳐 3장(각각 256*256), 베이스 텍스쳐 1장(256*256)

즉, 베이스 텍스쳐가 한장 깔리고, 알파텍스쳐와 스플래팅용 텍스쳐가 각각 알파값이 섞여 깔림





첫번째. 고정파이프라인에서 nPass렌더링
장점 : 로딩이 없다.
단점 : 렌더링 속도가 느리다. 그외 별다른 특징없음

두번째. 렌더타겟을 활용해서 처음 로딩할 때, 블렌딩된 텍스쳐를 미리 만들어 놓은 후, 렌더링할때 블렌딩된 텍스쳐를 붙임 → 이 부분은 바로 이전글에 포스팅되어있습니다.
개발배경. 어차피 블렌딩된 텍스쳐는 변하지 않는 것을 착안함. 처음에 로딩할때 렌더텍스쳐로 블렌딩 텍스쳐를 만들어둔 후, 렌더링할때 그 텍스쳐를 렌더링한다.
장점 : 렌더링 속도가 배우 빠름
단점 : 타일사이즈(셀개수*셀간격)byte * 타일개수 만큼 메모리가 낭비되고, 용량이 크면 클수록 로딩도 길어진다.(만들 때의 시간) 단, 작은 사이즈(타일의 사이즈)를 갖는 지형의 경우에 쓸만할듯

세번째. 알파부분을 하나의 텍스쳐로 합친 뒤, 픽셀 셰이더 처리
개발배경. 알파텍스쳐의 크기가 3장 다 같다. 그러므로 a부분만 쓰는게 아니라 r,g,b부분을 각각의 알파값으로 활용한다면, 알파텍스쳐를 1장으로 총 4장을 그릴 수 있다.
장점 : 속도가 두번째보단 느리지만, 첫번째보단 빠르다.
단점 : 알파텍스쳐3장을 한장으로 줄이긴 했지만, 픽셀셰이더 버전에 따른 텍스쳐 개수의 제한에 대한 부담이 따른다. 경우에 따라선 nPass를 피할 수 없음