2012-11-27 4 views
1

내 목표는 아스팔트 도로 위에 흰색 선을 그립니다. 도로의 특성이 변하기 때문에 아스팔트와 흰색 선을 나타내는 질감이있을 수 없습니다. 현재 접근법은 아스팔트 텍스처를 적용하고 다른 두 텍스처 좌표에 정보를 코딩하는 것입니다. 픽셀 쉐이더에서 이러한 좌표를 읽으면 그 부분이 흰색인지 아닌지를 결정합니다.glsl에서 앨리어스를 피하기 위해 텍스처 상단에 절차 선 그리기

이렇게하면 높은 수준의 앨리어싱이 발생합니다. 그리고 그게 제가 풀려고하는 문제입니다.

나는 smothsetp 또는 선형 보간을 적용하는 선의 "백색도"를 변경했습니다. 카메라와의 거리에 따라 너비와 색상을 변경했습니다. 이것은 약간은 도움이됩니다. 그러나 먼 거리에서는 여전히 추한 선이 있습니다.

어떻게 하시겠습니까? 부드럽게 처리 된 흰 선을 나타내는 텍스처를 가지고 텍셀에 액세스하는 것이 더 낫겠습니까? 인접한 텍셀에 액세스하는 쌍 일원 필터를 구현해야합니까?

+0

"아스팔트와 흰 선을 나타내는 질감을 사용할 수 없기 때문에 도로 변화의 유물"에 대해 조금 더 자세히 설명해 주시겠습니까? 왜 미리 렌더링 된 세트에서 올바른 텍스처를 선택하고 함께 꿰맬 수 없습니까? 아마도 우리는 당신이 그 지역에서 겪었던 문제들을 극복 할 수있는 방법을 제안 할 수 있습니다. "흰 선 그리기"문제를 일반적인 질감으로 채우고 있습니다. –

+0

실제 질문에 대해서는 Humus (http://www.humus.name/index.php?page=3D&ID=84)가 스케치 한 것처럼 데칼 기법을 사용해 볼 수도 있지만 흰색 라인에만 적용하십시오 (당신은 아스팔트 비트를 이미 가지고있다). –

+0

Thanks @ Paul-Jan 나는이 링크를 철저히 확인하고 유망한 것으로 보인다. 다른 질문 : 도로는 사용자가 런타임에 편집 할 수 있습니다 (너비, 차선 수, 교차점, 페인트 채색 ...). 텍스처 집합을 만들고 지오메트리에서 올바르게 부착하는 방법이 있어야하지만 코드화를 변경하는 것이 더 쉽고 유연 할 것이라고 생각했습니다 (추가 텍스처 좌표를 통과 시킴). 나는 잘못된 접근법을 취했을 수도 있지만, 지금까지는 앨리어싱 외에도 좋은 결과를 얻었습니다. – josepcn

답변

1

2 개의 좌표가있는 2 개의 텍스처 만 사용하면됩니다. 도로 폴리곤에 타일

  1. 작은 원활한 아스팔트 텍스처. 이 다각형의 중앙에 배치됩니다 알파
  2. 마크 텍스처

(질감 오프셋 좌표) 또는 마크가 어떤 앨리어싱을 방지하기 위해 당신은 도로의 중간에 여분의 다각형을 만들 수 있습니다.

모두가 보이게하려면 Texture Bombing에 먼지와 균열이있을 수 있습니다.

+0

감사합니다. @JAre, 구현할 수 있다고 생각했던 표준 접근 방식이 대부분이지만 도로 계획에 대한 대부분의 코드를 다시 수행해야합니다 (여전히 가능성이 있음). 그냥 좀 더 쉐이더에서 드로잉을 탐색 할 수 있습니다. 텍스처를 샘플링하여 아스팔트 색상을 취한 다음 해당 부분이 흰색 선의 일부인지 계산하여 그 결과를 앤티 앨리어스 방식으로? 그게 가능합니까? 그렇다면 가치가 있다고 말하는가? 사후 처리 AA 지원을 적용하겠습니까? 아니면 텍스처를 사용하여 전체를 다시 처리하는 것이 더 좋을까요? – josepcn

+0

@ user1854147 포스트 프로세스 AA의 경우 가장자리가 필요합니다 (정상 \ 깊이 경사), 맞습니까? 후 처리로 더 선명하게 보이도록 할 수 있습니다. 하지만 일반적으로 표준 텍스처 매핑을 사용합니다.절차적인 방식으로 쉐이더로 처리 할 수 ​​있지만 작성하기가 어렵고 확장하기가 더 어렵습니다. 예를 들어 조각 쉐이더 (조각 쉐이더에서)이 양쪽면 (텍스처 좌표 값 기준)에서 충분히 멀리 떨어져 있으면 흰색을 테스트 할 수 있습니다. 그러나 이런 식으로 당신의 쉐이더는 특히 찌꺼기를 사용한다면 너무 뚱뚱해질 수 있습니다. 또한 줄무늬를 도로에서 작게 잘라낸 별도의 형상으로 구현할 수 있습니다. – JAre