[SGL Library]

SGL Engine (초기 엔진)

SGL은 Structural GL Library를 의미하며, OpenInventor처럼 개체지향 프로그래밍을 지원함.

이것은 상단의 realWorld라는 라이브러리를 단순히 확장한 것이 아니라, 완전히 처음부터 재설계한 라이브러리이다. 우리는 아래처럼 단 몇줄만으로 VC++의 MFC환경하에서 OpenGL을 응용할 수 있다.

 

 

1. SGL Object들의 선언.

 

sglIntegration  sgl;

// Modeling List
sglGroup                scene;

sglCamera              cam(0, 0, 200, 0, 0, 0);
sglObjSphere          obj(30);
sglColor                 col(1., 1., 0., 1.);
sglTranslate            trans(0, 0, 0);
sglGroup                 grp;

 

2. SGL 초기화 설정.

        // SGL 초기화
        sgl.Init(m_hWnd);

        // 카메라 설정.  안해도 상관없다.
        sgl.sys.SetActiveCamera(&cam);

        grp.Add(&col);     // 컬러 속성 추가
        grp.Add(&trans);  //
이동 속성 추가
        obj.SetAttrib(&grp);  //
물체에 속성 설정
        scene.Add(&obj);    // scene graph
에 물체 등록

        // register the scene
        sgl.mod.SetModel(&scene);  //
렌더러에 scene graph 설정

 

3. 렌더링

        sgl.sys.Process();
        sgl.sys.Swap();

 

 

위 코드는 아래와 같은 결과를 만든다.

 

 

물체가 위에서 보다 복잡하더라도 코드는 별반 다르지 않다. OpenInventor를 상상하시면 된다.

SGL은 확장가능한 OOP개념으로 작성되어, 사용자가 기본 SGL에 그 기능을 확장할 수 있다.

아래 Interactive Model 또한 이 SGL을 SGLIModel이라는 라이브러리로 확장한 Application이다.

SGLIModel은 3D-Studio MAX의 ASE출력파일을 자체개발한 ASECF라는 컨버터로 바이너리로

전환하며 그것을 불러들여 SGL이 화면에 렌더링할 수 있도록 해준다. 동시에 Event 개념을 지원하여,

사용자와 Interactive 할 수 있다.

 

[Interactive Model]

SGL을 SGLIModel이라는 라이브러리로 확장하여 구현한 애플리케이션이다.

보시는 것처럼 컴퓨터를 사용자가 직접 뜯어볼 수 있다. 오른쪽의 패널은 마우스로 부품을 선택할 때 그 부품에 대한 설명을 보여주는 반투명 패널이다. [실행]

 

컴퓨터 전체의 모습이다. CD-ROM드라이브를 열어보았다. [실행]

 

컴퓨터 전체 모습을 보면서 마구(?) 뜯어보았다.

 

삼보사의 노트북이다.   모델이 더 있지만 위와 비슷하다.

* For not adequate web-space, I linked two models among them. Contact if you want the others.

* The models above are designed with ActiveX technology and run in Internet Explorer readily. It's similar with blaxxun.

* The SGL needs an OpenGL accelerator. If you have not, it works very slowly.