2017-10-19 8 views
0

libGdx 1.9.6을 사용하고 있는데 문제가 있습니다. 여러 포럼을 검색하고 다양한 자습서를 읽었지만 아무 것도 적합하지 않습니다. 블렌더에 간단한 큐브를 만들고 텍스쳐를 만들고 FBX로 내보내는 방법입니다 (fbx-conv 사용). BDX-Blender-Exporter도 다운로드했습니다. 나는 결과에 아무런 변화없이 Blender 2.69와 2.76b를 테스트했다.Libgdx 로딩 블렌더 모델, 투명도가 잘못됨

모델은로드와 같습니다

blended cube

난의 배경 색상을 변경하는 경우 (0,0,0,0) 또는 (0,0,0,1) 만 검은 색을 화면이 나타납니다.

여기에 라인이

model.materials.get(0).set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)); 

이 존재하는 경우

public class modelloader implements ApplicationListener { 
private PerspectiveCamera camera; 
private ModelBatch modelBatch; 
private Model model; 
private ModelInstance modelInstance; 
private Environment environment; 
private CameraInputController camController; 

private AssetManager as; 

@Override 
public void create() { 

    camera = new PerspectiveCamera(
      75, 
      Gdx.graphics.getWidth(), 
      Gdx.graphics.getHeight()); 

    camera.position.set(0f,0f,7f); 
    camera.lookAt(0f,0f,0f); 

    camera.near = 0.1f; 
    camera.far = 300.0f; 

    modelBatch = new ModelBatch(); 

    as = new AssetManager(); 
    as.load("moon.g3db",Model.class); 
    as.finishLoading(); 
    model = as.get("moon.g3db",Model.class); 


    model.materials.get(0).set(new BlendingAttribute(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA)); 

    modelInstance = new ModelInstance(model); 

    modelInstance.transform.rotate(1, 0, 0, 0); 
    modelInstance.transform.translate(0, 0, -2); 
    environment = new Environment(); 
    environment.set(new ColorAttribute(ColorAttribute.AmbientLight, 0.8f, 0.8f, 0.8f, 1.0f)); 
    environment.add(new DirectionalLight().set(0.8f, 0.8f, 0.8f, -0.8f, 0.3f, 1f)); 
    camController = new CameraInputController(camera); 
    camController.forwardTarget = true; 
    Gdx.input.setInputProcessor(camController); 
} 

@Override 
public void dispose() { 
    modelBatch.dispose(); 
    model.dispose(); 
} 

@Override 
public void render() { 
    camController.update(); 
    Gdx.gl20.glViewport(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()); 
    Gdx.gl20.glClearColor(1,1,1,0); 
    Gdx.gl20.glClear(GL20.GL_COLOR_BUFFER_BIT | GL20.GL_DEPTH_BUFFER_BIT); 

    camera.update(true); 

    modelBatch.begin(camera); 
    modelBatch.render(modelInstance, environment); 
    modelBatch.end(); 

} 

이 모델은 또한에만 표시되는 코드 (libGDX 1.9.6, 안드로이드 스튜디오 2.3.3)이다.

cube.blend

문제가 될 수 :

여기 블렌더 파일입니까?

+0

편집 : 잘못된 그림으로 고정 된 링크 – CptnRoughnight

+0

without model.materials.get (0) .set (새 BlendingAttribute (GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA))] https : //i.imgur처럼 보입니다. .com/drNer46.png – CptnRoughnight

+0

모델의 UV가 풀린 상태에서 텍스처가 존재한다고 가정하면 다음을 시도해 보았습니다. https://stackoverflow.com/questions/19112349/libgdx-3d-texture-transparency OP 이 링크와 그가 사용할 수있는 Gdx.gl20 함수 – kacpr

답변

0

신성한 고등어, 질감 파일이었습니다 ... 1024x1024 png였습니다 ...하지만 어떻게 든 손상되었습니다 ... 일단 열리고 다시 저장되고 모든 작품이 ... 수많은 시간 동안이게 내가 가진 유일한 것입니다. 확인하지 ... 도움 녀석 주셔서 감사! -