본문 바로가기

전체 글963

[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.
커스텀쉐이더 이용하기 커스텀쉐이더를 이용하여 3D모델을 표시하는 프로그램을 만든다. 리소스 추가 이번 프로그램에서는 3D모델 하나와 텍스쳐 한 장과 효과 하나를 사용합니다. 모델과 텍스쳐는 XNA Creators Club 에서 가지고 왔습니다. 폴더구성은 다음과 같습니다. 효과파일 편집 TextureEffect.fx를 편집한다. TextureEffect.fx float4x4 worldViewProj : WORLDVIEWPROJECTION; texture cubeTexture; struct VS_INPUT { float4 pos : POSITION; float4 texcoord : TEXCOORD0; }; struct VS_OUTPUT { float4 pos : POSITION; float4 texcoord : TEXCOORD.. 2009. 7. 14.
3D모델 조작하기 이번은 3D모델을 조작하는 프로젝트 입니다. 그러나 이미 저번 프로젝트에서 일부를 다뤘다는..! 그래도 참고삼아 보셨으면 좋겠네요. 3D모델 조작하기 3D모델을 Xbox360컨트롤러로 이동시키는 프로그램을 작성한다. 왼쪽 조이스틱으로 모델을 좌우회전시키고 A버튼으로 모델정보를 리셋, 오른쪽 트리거로 전진시킨다. 전진 중에 컨트롤러는 진동한다. 리소스 추가 이번 프로그램에서는 3D모델 하나와 텍스쳐 한 장과 효과 하나를 사용합니다. 모델과 텍스쳐는 XNA Creators Club 에서 가지고 왔습니다. 폴더구성은 다음과 같습니다. 1. 프로젝트를 생성한다. 2. 프로젝트이름을 우 클릭하여 추가->새로운폴더 를 선택하여 Content폴더를 생성하여 그 아래에 같은 방법으로 Models폴더 Textures폴더.. 2009. 7. 14.
간단한 버튼이나 메뉴 키이벤트 처리 방법 게임 프로그래밍을 하시는 분들이라면 키 이벤트 처리야 아주 초보적인 방법이겠지만 전 시작부터 땅집고 헤엄치다보니 한참 헤매서 도움말 참고로 이제서야 이해했네요. 저같은 소수의 초보분들을 위해서 도움이 되었으면 좋겠다는 생각에 올립니다. XNA에서 Update 함수에 그냥 키값을 입력받아서 처리할경우 캐릭터가 꾸준히 움직인다거나 할때는 상관이 없겠지만 버튼이라던지, 제경우는 메뉴에서의 키값대로 선택문 이동시에 미친 듯이 메뉴가 파파파파팍~ 움직여버리더군요. 프레임이 바뀌는 속도는 아주 짧은데 비해 키입력은 그보다 길어지니 일어나는 현상입니다. 이를 처리하기 위해선 키값상태를 먼저 알아야 합니다. 아무일도 않했는지, 키를 눌렀는지, 키가 떼어졌는지, 키가 눌린상태로 있는지를 판단해야하는데.. 아주 간단하더군.. 2009. 7. 14.
How To XNA : 2. 비어있는 게임 화면과 구조 비어있는 게임 화면과 구조 Visual Studio 2005 또는 XNA Game Studio Express (이하 XGS)를 실행한다. 새로운 프로젝트를 만들고 Visual C#의 XNA Game Studio 2.0의 Windows Game (2.0) 템플릿을 선택하고 프로젝트를 생성한다. Xbox 360 Game (2.0) 프로젝트는 Xbox 360에서 실행 가능한 게임을 만드는 프로젝트이다. PC용 프로젝트나 Xbox 360용 프로젝트를 만들었다고 해도, 플랫폼간 서로 프로젝트를 복사할 수 있으니 일단은 PC용 프로젝트를 만들도록 한다. 프로젝트를 생성하면 소스 파일로서는 Game1.cs 파일과 Program.cs 파일이 생성되는데 게임 로직이 들어가는 파일은 Game1.cs 이다. 자동으로 생성된.. 2009. 7. 14.