2017-04-09 16 views
-2

렌더링 할 창을 얻을 수 있었고, 내 셰이더가 작동하고 있다는 것을 알 수 있었고 실제로 애셋에서 이미지를 가져올 수 있습니다. 실제로 뷰를 렌더링하면 파란색 배경이 나타나고 스프라이트는 나타나지 않습니다.OpenTK : 스프라이트가 렌더링되지 않습니까?

조회수가의 무거운의 대부분을 가지고 있으며, 쉐이더를 선언 추상 클래스 WindowBase를 상속 (I 만 자산에 지금 하나가) 다음과 같이

기본 설계입니다. 내 유일한보기는 지금 Main.cs입니다.

다음보기에서 ObjectBase 인스턴스를 선언 할 수 있습니다. 오브젝트에는 OpenGL을 통해 텍스처 서비스에 의해 생성 된 텍스처에 링크 된 Sprite로 구성된 애니메이션이 있습니다.

아직 입력 서비스가 있습니다.하지만 지금은 입력 키가 없어도 이스케이프 키를 사용하여 창을 닫을 수 있습니다. 그러나 프로그램의 일부가이 문제와 관련이 있는지 의심 스럽습니다.

업데이트 : 원본으로 천천히 원본을 광산으로 변환했으며 Shader 시스템으로 바꾼 순간 파손되었음을 발견했습니다. 문제가 거기에 있습니다. 여기에 자신의 대 내 코드를 게시 할 수 있습니다 :이 시점에서 추측하고있어

Their Shader class

My version

어디 선가 typo'd해야했습니다. 아니면 내 루프 중 하나가 호환되지 않습니다. 아마 자산 클래스에서 스트림 리더를 처리하는 방법일까요? 다음과 같이

public int Attribute(string name) 
    { 
     return _attributes.ContainsKey(name) ? _attributes[name].Address : -1; 
    } 

    public int Uniform(string name) 
    { 
     return _uniforms.ContainsKey("name") ? _uniforms[name].Address : -1; 
    } 

    public uint Buffer(string name) 
    { 
     return _buffers.ContainsKey(name) ? _buffers[name] : 0; 
    } 

:

+2

코드를 모두 덤프하지 말고 [최소한의 완전하고 검증 가능한 예제 만들기] (https://stackoverflow.com/help/mcve)하십시오. – Vallentin

+0

이것은 OpenGL입니다. 내가 가지고있는 것을 단순화 할 수있는 방법이 있는지는 확실하지 않습니다. 전체 게임 엔진이고 스프라이트를 렌더링하지 않습니다. 835 개의 다른 곳이 있습니다. 그러나보기를 원하는 코드는 Views/Main.cs에 있습니다. –

답변

0

그것을 해결 : 내 문제는 라인 (114)이고, 다음 코드를했다

_uniforms.ContainsKey를 ("이름")이어야한다 _uniforms.ContainsKey (이름)