2014-09-30 10 views
0
델파이 XE2 의 최신 GLScene 데모 트렁크를 사용하고

에 대한 GLScene 데모 또는 OpenGL을 텍스처에 맞는 4 점 다각형 /면을 확인하고 나는 무승부를 대신 2D의 3D를 사용하는 프로젝트의 GUI 틱 유형에 일했다 화면상의 GUI 요소.델파이

그래도 작동하지만 분명히 이유로 그래픽 배치가 픽셀 완벽하지 않습니다.

나는 TGLSceneViewer의 1 픽셀이 화면상의 1 픽셀이되도록이되도록 3D 뷰를 매핑했습니다. 그것은 나를 위해 충분하다.

그러나 내 GUI 용으로 3D를 사용한다는 생각을 포기하고 있으며 대신 GPSc 가속화 이후 GLScene for2D 그래픽 표현을 독점적으로 사용하는 데 초점을 맞 춥니 다 ( ).

그럼 이전 GUI에서 Graphics32 을 사용했던 이전 프로젝트에서 Projective Transformation을 사용한 것을 기억합니다. , I를 I 단순히 3 차원 공간에서의 포인트를 그릴 수있는 사영 변환으로

는 가 2 차원 좌표로 좌표 변환, 그 점의 3 차원 좌표를 판독 는 TBitmap32 사영 변환 파라미터들을 적용하고, 비올라 내 소프트웨어에 3D 기능이 있습니다.

그래서, 내 질문은 :

는 질감이 4 점 사이에 맞는지 있도록이, 또는 비행기 내에서, 나는 코너를 이동 "스트레치"GLScene 데모 또는 OpenGL을의 질감이 가능 할 때마다 그래서인가 새로운 위치에 비행기, 텍스처가 그에 따라 늘어납니다?

그런 식으로 GLScene을 2D 그래픽으로 사용할 수 있지만, 3D처럼 보이게 만드는 간단한 속임수를 사용합니다.

아래 링크의 시각적 표현이 인터넷의 이미지를 가리키는 내가 무엇을 찾고 : 당신이 당신의 쉐이더에 미친 뭔가를 구현하지 않는, 또는 고정 사용하고 있다고 가정 http://i.stack.imgur.com/hDdqa.png

+0

왜 FireMonkey를 사용하지 않습니까? 네이티브, 2D 및 3D이며 하드웨어 가속 기능 (2D 버전 포함)을 제공합니다. 처음부터 직접 작성하지 않고 원하는 모든 것을 할 수 있습니다. –

+0

Firemonkey의 성능은 정확하게 생각해 보면 좋지 않습니다. 아니면 내가 틀린거야? – xaid

+0

초기 버전에서 Direct2D를 사용할 수 없을 때 GDI +로 다시 떨어질 때 문제가 발생했습니다 (XE4 이하). Vista를 사용하고 있거나 정상 이상이면 괜찮을 것입니다. 2D 작업을 위해 XE6에서 매일 사용하고 있습니다. 모든 라이브러리와 마찬가지로 몇 가지 사항을 알아야합니다. 예를 들어 텍스트 객체를 많이 화면에 그려 넣으면 텍스트 객체를 캐시하는 것이 편리합니다. VCL에 대해서도 알아야 할 비슷한 것들이 있습니다! 전반적으로 잘 작동하고 빠르며 행복합니다. –

답변

1

함수 파이프 라인 기능이 상당히 사소한 있어야합니다.

OpenGL의 텍스처 좌표는 항상 정규화되어 있습니다. 즉, [0-1] 범위 내에 있음을 의미합니다.

기본적으로 개체를 그리는 동안 텍스처의 좌표를 최대 1과 최소 0으로 설정하면 텍스처가 항상 네 채워야합니다.

4 점을 그리는 데 사용하는 코드를 제공 할 수 있습니까? 내가 그것을 볼 수 있다면 나는 그것을 도울 수 있을지 모른다.

+0

GLScene을 사용하기 때문에 코드를 사용할 수 없으며 기본적으로 4 포인트로 구성된 장면에 TGLPlane 개체를 추가합니다. GLScene이 모든 것을 처리 할 때 어떻게 4 점을 조작하는지 모르겠습니다. 그래서 나는 당신이 제안하는 것을 시도 할조차 수 없다. 그러나 GLScene 지금 TGLPlane 4 포인트를 조작하는 방법을 보려면 조사입니다. – xaid

+0

평면으로부터의 텍스처 좌표가 정규화 된 좌표를 사용하는 한 아무런 문제가 없어야합니다. – Daniel

+0

Alright Daniel, 정보 주셔서 감사합니다. – xaid