2013-04-12 3 views
0

iOS 용 Qualcomm 증강 현실 FrameMarkers 데모 &은 3D 녀석이 나에게 준 모델을 전환했습니다. (실제로 그는 3D로 도저히 돌아 다니는 2d 녀석입니다. 이것이 3D 엔드가 아니라 코드 엔드에서이를 해결하려고하는 이유입니다. 문제는 텍스처링과 관련된 것입니다. 데모에서는 2D 이미지 텍스처가 3D 모델에 바인딩되어 있다고 가정합니다. 그러나 우리의 3D 녀석은 객체 자체에 텍스처링을 구현했습니다 (예 : 절차 적 텍스처링).OpenGL ES - 절차상의 질감을 통합하는 방법

처음에는 개체가 검은 색으로 완전히 채워진 것처럼 보였습니다. &은 세부 사항을 실제로 볼 수 없었습니다. 하여 은색 색상 &의 모든 종류를 전환

glActiveTexture(GL_TEXTURE0); 

glBindTexture(GL_TEXTURE_2D, [obj3D.texture textureID]); 

내가 지금 세부 & 표면의 일부 떨어져 일부 반사의 일부를 볼 수 있습니다 (: 나는 데모에서이 줄을 제거하여 좀 더 나은이 만들어 관리 실제로 반투명 한 장소가 아닌 순수한 반투명의 장소라고 생각합니다. 그래서 이것은 또한 문제입니다.).

반투명을 유지하기 위해 몇 가지 지침을 읽었습니다. 그러나, 나를 위해

glEnable(GL_BLEND); 

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 

- 그들은 단지 전체 화면 검은 색을 설정 ..

올바른 : Correct rendering

인앱 : 스크린 샷의 이익으로 In-app rendering

+1

모델 자체에 텍스처링을 구축했다고 할 때, 그가 제공 한 형식은 무엇입니까? 그가 전달한 질감을 보여주고 싶다면, 무엇을 보여 주시겠습니까? 렌더맨 쉐이딩 코드, GLSL, HLSL, 아마도 다른 것? – Tommy

+0

안녕하세요 - 3D 모델은 표준 3DS 설정을 통해 제작 된 wavefront .obj 파일로 제공되었습니다. 다른 3d 모델에서 전환하기위한 vuforia 튜토리얼에 따라 obj 파일을 정점 배열, texcoords 배열 및 법선 배열이있는 C 헤더 파일로 변환하는 perl 변환기 스크립트 (obj2opengl.pl)를 통해이 obj를 실행했습니다. – Reece

+0

더 이상 텍스처링 정보가 전혀 없습니까? – Tommy

답변

0

, I 당신의 디자이너가 얼굴에 적절한 자료를 할당했다고 추측 할 것입니다. 아마도 OBJ 파일과 함께 가고 .MTL 파일을 가지고 있고와 같은 것들로 시작하는 많은 라인을 포함하고있을 것입니다, KdNs - 질감은 전혀 적용되지 않습니다. 내가 obj2opengl에서 만들 수있는 것부터 스크립트는 비디오 게임 스타일을 더 많이 사용한다고 가정합니다. 일부 구현에서는 표면에 지정된 색상 속성이 삭제되고 텍스처 만 적용됩니다.

기술적으로 말하자면 텍스처링을 사용 중지하는 것이 맞지만 ES 1.x를 사용하는 경우 추가 할 부분이 glMaterial인데, 스크립트가 지원하지 않는 데이터를 사용하는 것입니다. 유지하는 것 같습니다. 또는 ES 2.x에서는 iOS 환경에서 적절하게 지정된 GLKEffectPropertyMaterial을 관련 GLKBaseEffect에 연결하여 해협을 얻을 수있는 고전적인 ambient + diffuse + specular 조명 모델을 모방하는 셰이더를 원하게됩니다.

투명성을 위해, 증강 현실 라이브러리가 3d 및 2d 합성을 원하는 상태를 올바르게 설정하지 않고 단순히 대신 보존한다고 가정합니다. 그래서 당신은 그것을 조사해야 할 것입니다.

어떤 종류의 해결책을 찾고 계십니까? 지금부터 임의의 모델에 적용 할 수있는 무언가를 원하십니까? 아니면이 모델을 응용 프로그램에 가져 와서 다른 것들을 사용하는 것입니까?

전자는 전적으로 다른 툴체인을 찾아야 할 것입니다. 필자는 내가 OBJ 파서 (write-an-OBJ-parser)를 더 많이 사용하고 있었기 때문에 조언을 할 수없는 것 같아요. 런타임에 일종의 사람을 파싱하고 GLUtit을 업데이트 한 적이 없기 때문에 이제는 연로 상태가되었습니다.

가장 쉬운 방법은 소재별로 모델을 분할하고 각 구성 요소를 개별적으로 내보내는 것입니다 (3D 편집기가이를 수행 할 수 있기를 바랍니다). 그런 다음 관련 계수를 손으로 입력하고 (많지는 않음) 적절한 순서 (투명성 마지막, 아마 그렇지 않으면별로 중요하지 않습니다).

편집 : 레코드의 경우 사람들이 절차 상 텍스처를 말할 때 일반적으로 의미하는 것은 f(texture position)이라는 수식을 제공하는 것과 같습니다. 예를 들어 다각형의 표면을 가로 질러 평가하면 대리석처럼 보입니다. 바라기를 바꿔서 더 자세히 매개 변수화하고/또는 정의하여 확대하고 자세히 볼 수있는 방법을 찾았 으면합니다. 그래서 그것은 융통성의 장점을 가지고 비트 맵에 넣었을 2D 이미지를 생성하는 기능입니다. 바라건대 세부 사항도 있습니다.

+0

감사합니다. 확실히 고려해야 할 부분이 많습니다. 시간과 노력에 감사드립니다. 그래서 대답 해 드리겠습니다. – Reece