2014-09-03 8 views
0

OpenGL에서 2D 텍스처를 제공하는 가장 쉬운 방법은 (lwjgl) 일종의 "두께"입니다. 물론 나는 어떻게 든 텍스쳐의 테두리를 얻을 수 있었고 텍스쳐가 그려진 쿼드의 법선과 인접한 텍스쳐 픽셀의 색으로 Quad를 추가 할 수있었습니다. 하지만 더 쉬운 방법이 있어야합니다. Minecraft는 lwigl도 사용하고 있으며, 다각형의 수십 개를 그렸을 때와 같이 성능 문제가 많이 발생하지 않는 (새로운) 3D 항목이 있습니다. 또한 손에 물건을 넣을 때, 고해상도의 텍스쳐로도 작동하는 그런 종류의 "뻗어있는"텍스처가 있습니다. 어떻게 완료되는지 아는 사람이 있습니까?OpenGL 2D 텍스처의 두께

+1

텍스쳐가 겉보기 두께를 가질 수있는 유일한 방법은 범프 맵핑 (심지어는 겉보기 두께 일 뿐이지 만 극한 각도에서 보았을 때 분해됩니다)입니다. 실제 두께를 생성하려면 일부 지오메트리 생성 효과가 있어야합니다. – Durandal

+0

그래, 기하학 쉐이더는 꽤 멋지게 사용할 수 있습니다. – Iggy

답변

0

2D 텍스처는 항상 무한히 얇습니다. 실제 두께를 원한다면 (가장자리를 볼 때) 지오메트리가 필요합니다. Minecraft에서는 그런 식으로 모델링 되었기 때문에 상황이 고르지 않게 보입니다.

각도를보고 가장자리를 무시하면 시차 매핑을 사용하여 텍스처의 일부 깊이를 "가짜"로 만들 수 있습니다. 또는 깊이 맵을 사용하고 텍스처 셰이더와 정점 셰이더의 조합을 사용하여 텍스처에서 지오메트리를 생성하는 위치 변경 맵을 구현할 수 있습니다.

관련 문제