Programing

C #과 함께 OpenGl을 사용하십니까?

crosscheck 2020. 7. 20. 07:37
반응형

C #과 함께 OpenGl을 사용하십니까? [닫은]


C #에 대한 무료 OpenGL 지원 라이브러리가 있습니까? 그렇다면 어떤 프로젝트를 사용하고 샘플 프로젝트를 어디에서 찾을 수 있습니까?

C #은 OpenGL에 클래스를 제공합니까?


OpenTK 는 오버로드, 강력한 형식의 열거 형, 예외 및 표준 .NET 유형과 함께 관용적 C # 스타일을 사용하므로 Tao API에 비해 개선되었습니다.

GL.Begin(BeginMode.Points);
GL.Color3(Color.Yellow);
GL.Vertex3(Vector3.Up);

C API를 단순히 미러링하는 Tao와 달리 :

Gl.glBegin(Gl.GL_POINTS);   // double "gl" prefix
Gl.glColor3ub(255, 255, 0); // have to pass RGB values as separate args
Gl.glVertex3f(0, 1, 0);     // explicit "f" qualifier

이렇게하면 포팅이 어려워 지지만 사용하기가 매우 좋습니다.

보너스로 글꼴 렌더링, 텍스처 로딩, 입력 처리, 오디오, 수학 등을 제공합니다.

업데이트 18.1.2016 : 오늘 OpenTK 관리자는 프로젝트에서 멀어 졌으며 미래는 불확실합니다. 포럼은 스팸으로 가득 차 있습니다. 관리자는 MonoGame 또는 SDL2 #로 이동하는 것이 좋습니다.


@korona가 의미하는 것은 단지 C API이기 때문에 다음과 같이 많은 타이핑으로 C #에서 직접 사용할 수 있다고 생각합니다.

[DllImport("opengl32")]
public static extern void glVertex3f(float x, float y, float z);

불행히도 호출하는 모든 OpenGL 함수 마다이 작업을 수행해야하며 기본적으로 Tao가 수행 한 작업입니다.


타오 는 좋은 프레임 워크가되어야합니다.

그들의 사이트에서 :

.NET 용 Tao Framework는 .NET 및 Mono 플랫폼을 사용하는 플랫폼 간 미디어 응용 프로그램 개발을 용이하게하는 바인딩 모음입니다.


SharpGL 은 Windows Forms 또는 WPF 응용 프로그램에서 OpenGL을 사용할 수있는 프로젝트입니다.


랩퍼없이 OpenGL을 사용하여 C #에서 기본적으로 사용할 수 있습니다. Jeff Mc가 말했듯이 DllImport에 필요한 모든 기능을 가져와야합니다.

그가 남긴 것은 OpenGL 함수를 사용하기 전에 컨텍스트를 작성해야한다는 것입니다. 어렵지는 않지만 직관적이지 않은 DllImport는 거의 없습니다.

VS2012에서 Windows 상자에서 OpenGL을 실행하는 데 필요한 최소한의 C # 프로젝트 예제를 만들었습니다. 창만 파란색으로 칠하지만 시작하기에 충분해야합니다. 예는 http://www.glinos-labs.org/?q=programming-opengl-csharp 에서 찾을 수 있습니다 . 맨 아래에서 래퍼 없음 예를 찾으십시오 .


나는 또한 Tao Framework를 추천한다 . 그러나 한 가지 추가 참고 사항 :

이 튜토리얼을 살펴보십시오 : http://www.taumuon.co.uk/jabuka/


이 지원 라이브러리는 무엇을 원하십니까? C #에서 OpenGL을 사용하는 것만으로도 간단하고 추가 라이브러리가 필요하지 않습니다.


XNA 대 OpenGL 선택에 대해 (내가 아는 주제이지만 이전에 제기되었으므로) XNA 대신 OpenGL을 사용하는 것이 좋습니다 (OpenGL 대신 다른 XNA에서 사용하는 경우).

Mono를 사용하여 Linux 또는 Mac에서 응용 프로그램을 실행하려는 경우 OpenGL을 사용하는 것이 좋습니다. 또한 널리 알려진 것은 아닙니다. Citrix 환경에서 응용 프로그램을 실행할 고객이 있다면 DirectX / Direct3D / XNA는 OpenGL만큼 경제적이지 않을 것입니다. 그 이유는 하드웨어에서 전용 가상 서버를 실행해야하는 DirectX / XNA 응용 프로그램보다 OpenGL 응용 프로그램을 적은 수의 서버에서 공동 호스팅 할 수 있기 때문입니다 (단일 서버는 무한한 수의 응용 프로그램 인스턴스를 호스팅 할 수없는 성능 문제로 인해). 가속 모드. 지원되는 그래픽 카드와 같은 다른 요구 사항이 있지만 XNA 대 OpenGL 문제를 계속하겠습니다. IT 아키텍트, 소프트웨어 개발자 등은 OpenGL과 DirectX / XNA를 선택하기 전에 고려해야 할 사항입니다.

참고로 WebGL은 OpenGL ES3 기반을 기반으로합니다.

추가로, 이것 만이 유일한 고려 사항은 아니지만 일부 사람들에게는 더 쉽게 선택할 수 있습니다 ...


XNA 2.0에는 최소 셰이더 1.1 카드가 필요합니다. 오래된 기술이지만 모든 사람이 가지고있는 것은 아닙니다. 일부 최신 랩톱 (우리의 경험에 따르면 인텔 그래픽이있는 Toshiba 태블릿)에는 셰이더 1.1이 지원되지 않습니다. XNA는 이러한 머신에서 실행되지 않습니다.

이것은 우리에게 중요한 문제이며 우리는 Tao 및 OpenGL로 전환했습니다. 또한 Tao와 함께 오디오 및 루아 지원을위한 바인딩이 있습니다.

참고 URL : https://stackoverflow.com/questions/536065/using-opengl-with-c

반응형