본문 바로가기

프로그래밍305

문자열관련 STL 함수 만들어보기 2009. 7. 16.
SWAP작성과 포인터,배열,함수포인터 2009. 7. 16.
도서관리프로그램 UseCase - Diagram 도서관리프로그램 UseCase - Diagram 2009. 7. 16.
[3.0] 3D모델 이동하기 이번에는 바로 이전 예제의 타이어를 굴리는 예제를 만들어보겠습니다. 이를 위해 카메라와 피규어라는 클래스를 만들어야 하고, Game1.cs에서는 키 조작에 관한 코드를 작성하게 됩니다. 먼저 Camera.cs입니다. 카메라 클래스에서는 시점에 따라 유지할 정보를 가지고 있는데요, 이러한 정보에 대해 살펴보면, - 뷰 매트릭스 n 카메라 위치 n 참조점 n UP벡터 - 사영 매트릭스 n 시야각 n aspect비 n NearClip면의 거리 n FarClip면의 거리 가 있습니다. Camera.cs using System; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; //카메라 public class Camera { //뷰 매.. 2009. 7. 14.
[3.0] 3D 모델 표시하기 드디어.. 3.0튜토리얼을 들어갑니다. 머어.. 사실 2008로 갈아타는것도 3.0을 설치하는 것도 단지 귀찮았을 뿐이고. 일단, 개발툴은 2008 Express나, Visual Studio 2008로 바꿔주시고 다음 URL을 통해 XNA3.0을 설치해줍니다. http://www.microsoft.com/downloads/details.aspx?FamilyId=7D70D6ED-1EDD-4852-9883-9A33C0AD8FEE&displaylang=en 그럼 일단 준비는 끝. 사실상 많은 차이가 없다고 보는데, 약간의 문법적 차이가 있는 것 같기도... 따라서 이번 튜토리얼은 3D부터 살펴보고 가능하면 튜토리얼 이후에 간단한 프로젝트를 진행해볼까 합니다. wheel 이라는 3D모델을 표시하는 프로젝트입니다.. 2009. 7. 14.
텍스쳐 어둡게 하기 이펙트의 일부를 바꿔서 텍스쳐를 어둡게 해보자. 변경할 사항 픽셀 쉐이더 처리 수치 리턴값에 0.5를 곱해 밝기를 반으로 줄인다. float4 PS_TextureTech(VS_OUTPUT Out) : COLOR { return 0.5f*tex2D(textureSampler,Out.texcoord).rgba; } 텍스쳐 보색으로 보기 이펙트의 일부를 고쳐씀으로써 텍스쳐를 보색(색상표에서 반대쪽에 있는 색)으로 바꿔준다. 변경할 사항 픽셀쉐이더 처리 리턴값을 1.0f-텍스쳐색 으로 한다. float4 PS_TextureTech(VS_OUTPUT Out) : COLOR { return 1.0f-tex2D(textureSampler,Out.texcoord).rgba; } 텍스쳐의 빨간색 성분 지우기 이펙트의 일.. 2009. 7. 14.
텍스쳐를 붙인 3D프리미티브 표시하기 텍스쳐를 붙인 3D프리미티브를 표시하는 프로그램을 만듭니다. 리소스 추가 이번 프로그램에선 그림 한 장 쓰고..이제 알아서 프로젝트에 추가하십셔. heniheni.png 이펙트 파일 추가 이번 프로그램에서는 이펙트 파일을 하나 쓸 겁니다. 프로젝트에 추가 ㄱㄱ 이펙트 파일에 대해서는 또 다음 시간에.. TextureEffect.fx float4x4 worldViewProj : WORLDVIEWPROJECTION; texture cubeTexture; struct VS_INPUT { float4 pos : POSITION; float4 texcoord : TEXCOORD0; }; struct VS_OUTPUT { float4 pos : POSITION; float4 texcoord : TEXCOORD0; .. 2009. 7. 14.
ViewingPipeline Cull모드 폴리곤은 입방체등과 같이 양면을 다 그릴 필요가 없는 경우 그리지 않아도 되는 부분은 그리지 않도록 설정함으로써 그리는 데에 걸리는 부하를 줄일 수 있다. CullMode.CullClockwiseFace 시계회전 정점을 가지는 면만을 그림. CullMode.CullCounterClockwiseFace 반 시계회전 정점을 가지는 면만을 그림. CullMode.None 양 면을 그림. 2009. 7. 14.
3D프리미티브 표시하기 3D프리미티브를 보여주는 프로그램을 작성한다. 리소스 추가 이번 프로그램에서는 이펙트파일을 하나 프로젝트에 추가하여 사용합니다. 이펙트파일에 대해서는 다음에 다시 알려드리겠습니다. SimpleEffect.fx float4x4 worldViewProj : WORLDVIEWPROJECTION; struct VS_INPUT { float4 pos : POSITION; float4 color : COLOR0; }; struct VS_OUTPUT { float4 pos : POSITION; float4 color : COLOR0; }; VS_OUTPUT VS_TransformTec(VS_INPUT In) { VS_OUTPUT Out=(VS_OUTPUT)0; Out.pos =mul(In.pos,worldViewPr.. 2009. 7. 14.