테셀레이션 쉐이더를 사용하여 쿼드에 구멍을 뚫어서 삼각 분할 할 수 있습니까? 예를 들어, 테셀레이션을 사용하여 쿼드에 구멍이있는 삼각형을 만듭니다.
-
내가 쿼드을 상상해보십시오.
- 그러면 쿼드의 중앙에 구멍을 만들고 싶습니다.
- 구멍을 만들기 위해 더 많은 꼭지점이 필요합니다.
그리고 질문 :
- 내가 할 수있는 테셀레이션 쉐이더를 사용하여 해당? 그렇다면 어떻게?
- Geometry 셰이더 대신 사용해야합니까?
테셀레이션 쉐이더를 사용하여 쿼드에 구멍을 뚫어서 삼각 분할 할 수 있습니까? 예를 들어, 테셀레이션을 사용하여 쿼드에 구멍이있는 삼각형을 만듭니다.
내가 쿼드을 상상해보십시오.
그리고 질문 :
이것은 테셀레이션 쉐이더의 일반적인 응용 프로그램이 아니며, 수행되는 작업도 아닙니다. 기본적으로, 당신은 그래픽 카드로 전달되는 거친 3D 모델을 가지고 있습니다. 그래픽 카드는 실제로 테셀레이션 알고리즘을 구현합니다.이 알고리즘은 프리미티브를 테셀레이션하여 더 세련된 3D 모델을 만듭니다.
당신은 두 개의 쉐이더를 제공해야 : (OpenGL을 기준) 테셀레이션 제어 - 평가 쉐이더 테셀레이션 제어 쉐이더에서
당신이 테셀레이션 알고리즘 (내부 및 외부 테셀레이션 요인 등)을 "매개 변수화"할 수 있습니다. 그런 다음 테셀레이션 알고리즘이 적용됩니다. 그 후, 테셀레이션 평가 쉐이더는 예를 들어. 정점의 정점 속성을 보간합니다.
당신이하고 싶은 것은 CSG (http://en.wikipedia.org/wiki/Constructive_solid_geometry)를 생각 나게합니다. 테셀레이션 쉐이더가 새로운 데이터를 생성하는 것은 사실이지만 알고리즘을 매개 변수화 할 수 있습니다. 테셀레이션 알고리즘을 "구현"할 수 없습니다. 광고 기하학 쉐이더 : 새로운 프리미티브를 (제한된 양의) 방출 할 수 있지만 사실은 귀하의 문제에는 적용되지 않습니다.
고려해야 할 가치가있는 또 다른 변형은 프래그먼트 셰이더를 사용하는 것입니다. 단 "구멍"의 조각을 버리는 것입니다. 이를 위해 텍스처를 사용할 수 있습니다. 우리는 일부 매개 변수를 사용하여 구멍의 위치와 크기를 설명합니다. "오래된"GL은 또한 그런 일을 할 수있는 알파 테스트를 가지고 있습니다. – derhass
@derhass 코멘트를 주셔서 감사합니다. 거대한 쿼드에서 이루어지기 때문에 텍스처를 수정하는 것은 불가능합니다. 메쉬를 더 만들어야합니다. – Veehmot