Graphics 87

GPU 구조

Graphic Processing Unit 구조 GPU라는 놈이 nVidia가 표준도 아닌것이 가장 많이 사용되고 있기 때문에, nVidia의 CUDA만 본다. 내 연구실 컴퓨터 GPU도 GTX280이다. ㅇㅋ CPU와 GPU의 구조이다. 딱봐도 느껴지는것은 GPU는 병렬구조를 갖고 있다는 것 그리하야 CPU에서 하지 못하는 병렬 계산을 GPU에서는 해낼 수 있다. GPU 전체가 그래픽카드를 의미하는 말은 아니고 그래픽 카드에서 계산을 담당하는 부분이 바로 GPU인 것이다. CUDA는 이미지 및 동영상, 그래픽 처리에 아주 월등한 성능을 보여주고 최근 다양한 용도로 사용되고 있다. 기본 아키텍쳐가 CPU 변수 -> GPU 처리 -> 다시 CPU가 처리된 내용을 처리 물론 복잡한 행렬식이나 벡터계산을 병렬..

Graphics/GPU 2014.06.09

Direct X - 19. 모델의 이동, 회전, 확대, 축소

using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// private VertexBuffer _xyzLineBuffer = null; private Vector3 _scale = new Vector3(1.0f, 1.0f, 1.0f); private Vector3 _trans = Vector3.Empty; private float _rotate = 0..

Graphics/DirectX 2014.06.09

Direct X - 18. 모델 확대와 축소

이 모델 확대와 축소를 이용하면,, 폭발하는듯한 애니메이션을 만드는데 응용이 가능하다 using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// /// private VertexBuffer _xyzLineBuffer = null; private Vector3 _scale = new Vector3(1.0f, 1.0f, 1.0f); public bool I..

Graphics/DirectX 2014.06.09

Direct X - 17. 키보드와 마우스를 이용한 모델 이동

이것역시 크게 다를건 없다 기억이 안나면 키보드처리하는 9강을 참고하자,, using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// /// private Vector3 _trans = Vector3.Empty; public bool InitializeApplication(MainForm topLevelForm) { // 폼의 참조를 보관 유지 this..

Graphics/DirectX 2014.06.09

Direct X - 16. X, Y, Z 좌표 그려넣기

정말별거없다 X, Y, Z좌표에 선하나긋는 것 using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// private VertexBuffer _xyzLineBuffer = null; public bool InitializeApplication(MainForm topLevelForm) { // 폼의 참조를 보관 유지 this._form = topLeve..

Graphics/DirectX 2014.06.09

Direct X - 15. 모델 데이터 불러오기 (.x 파일)

모델데이터를 불러와보자 X파일은 다각형의 정점데이터나, 면의 데이터 등을 정리해둔 파일 이제는 모델데이터를 코드로 만드는게 아니라, X파일로부터 불러들이는 작업을 할 것이다 다각형이 복잡하다면 통상 X파일을 읽어서 하는게 일반적인데... (2011.02.19) - X파일 외에도 Obj, 3ds, stl 등 다양한 포맷이 사용됩니다 (2014.06.09) using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample ..

Graphics/DirectX 2014.06.09

Direct X - 14. 조명효과 사용하기

3D 물체에 조명을 쏘는 것! 우선 우리 조명에 대해서 알고 들어갑시다 라이트(조명)는 메테리얼, 라이트, 법선이 있다 메테리얼 메테리얼은, 물질의 색깔이다, 기본적으로 개개의 3D모델마다 메테리얼의 파라미터를 보관 유지해주고 있다, 하지만, 메테리얼은 라이트와 함께 쓰지 않는다면 의미가 없다 어쨋든 라이트를 쓸려면 메테리얼을 꼬옥 써야한다는 것. 메테리얼의 색은 정점의 색과는 다르다 메테리얼에는 여러개의 파라미터가 있어서 물질의 질감표현에 다양한 변화를 줄 수 있다 Material 구조체 Diffuse : 물질의 기본색 Ambient : 앰비언트 받았을 때의 색(라이트가 맞지 않아도 보인다) Specular : 경면 반사광(자동차의 광택같이 강하게 보인다) SpecularSharpness : 반사의 날..

Graphics/DirectX 2014.06.09

Direct X - 13. IndexBuffer를 이용한 상자 만들기

인덱스버퍼를 사용해서 육면체를 만든다 using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// private VertexBuffer _vertexBuffer = null; private IndexBuffer _IndexBuffer = null; private static Int16[] _vertexIndices = new Int16[] { 2, 0, ..

Graphics/DirectX 2014.06.09

Direct X - 12. 마우스로 카메라 시점 움직이기

카메라를 움직이는 부분의 공식이나 방법은 11강과 같고,, 단지 키보드에서 마우스만을 사용한다는 점이 바뀌었다 using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// private VertexBuffer _vertexBuffer = null; private Texture _texture = null; private float _lensPosTheta..

Graphics/DirectX 2014.06.09

Direct X - 11. 키보드로 3D 카메라 시점 움직이기

키보드로 3D 이미지의 카메라 시점을 변경해보자 using System; using Microsoft.DirectX; using Microsoft.DirectX.Direct3D; using System.Windows.Forms; using System.Drawing; namespace MDXSample { /// /// 메인 샘플 클래스 /// public partial class MainSample : IDisposable { /// /// 정점 버퍼 /// private VertexBuffer _vertexBuffer = null; private Texture _texture = null; private float _lensPosTheta = 270.0f; private float _lensPosPh..

Graphics/DirectX 2014.06.08