2010-05-31 8 views
1

360을위한 새로운 XNA 프로젝트를 시작하는 것에 대한 궁금증을 던지기 만하면됩니다. 저는 학교가 복고적이며, 스캔 라인과 컬러 팔레트 등을 에뮬레이트하고 싶습니다.60K + 360의 스프라이트?

이 아이디어의 일부로, 내가 이상적으로하고 싶은 것은 수동으로 화면의 모든 픽셀을 수동으로 그립니다. 그래서, 최악의 시나리오는 252x240 해상도에서 약 60,000 개의 스프라이트를 그려야 할 것입니다 (나는 정확하다고 생각합니다). 한 번에 화면에 60K 스프라이트.

그래서 코드를 작성하기 전에 - XBOX 360에서도이 문제를 해결할 수 있습니까? 이것은 많은 스프라이트이지만, 스프라이트가 크지 않고 필요한 텍스처 데이터가 존재하지 않습니다. 그러나이 프로젝트가 어떻게 구현 될지 생각해 보았습니다.하지만 2D 배열과 그 시점에서 어떤 색 값을 그려야 하는지를 생각해내는 것이 전부였습니다.

물론 이것은 지금 당황 스럽습니다. 그러나 당신 모두는 무엇을 제안합니까?

편집 : 각 스프라이트는 하나의 픽셀을 나타냅니다. 예 : 0,0의 스프라이트 0,1에 또 다른.

+0

왜 자신 만의 텍스처를 그리는 것이 아닌가요? – Gabe

+4

Erm ... 1 픽셀 와이드 스프라이트는 스프라이트가 아니며 픽셀입니다. – Diadistis

+1

@Diadistis : 1 픽셀 너비 스프라이트가 아니라 1 픽셀을 나타내는 스프라이트입니다. 그가 1920x1080이 아닌 252x240에 대해 이야기하고 있음을주의하십시오.) – Wolph

답변

3

60K 스프라이트를 사용하는 대신 작동하지 않을 가능성이있는 원시 사각형을 그리고 필요한 색상을 지정하는 것이 좋습니다.

실제로는 3D 프로그래밍의 일부이지만 Z 축을 모두 놓고 직각 카메라를 지정합니다.

실제로 정사각형은 두 개의 삼각형을 단순하게 결합한 것입니다. 나는 해결책이 빠르고 쉽다고 말하지는 않는다. 그러나 이것이 당신이 당신의 연구를 시작해야하는 곳이라고 생각한다.

스프라이트는 좋지 않습니다.

+1

대부분의 콘솔이 프레임 당 120,000 개의 삼각형을 넘겨 줄 수 있기 때문에 아마도 가장 좋은 대답 일 것입니다. D 저는이 방법을 너무 구현하기가 너무 쉽지 않으므로 다른 접근법을 사용하고 있습니다. 그러나 이것은 아마도 최선의 방법 일 것입니다. 저는 3D 수학으로는 그다지 좋지 않습니다.하지만 이것은 누군가에게 유용 할 것입니다. –

+0

그럼 수학 괴물 일 필요는 없습니다. XNA는 모든 복잡한 계산을 처리합니다. 어쨌든 행운을 빌어 요! – SiN

+1

XNA SpriteBatch *에 의해 구현 된 것처럼 스프라이트는 기본 사각형입니다. SpriteBatch 셰이더는 신속하게 그리기 위해 최적화되어 있습니다. 틀림없이 텍스처링과 같은 추가 작업을 수행합니다. 여기서 제거 할 수 있습니다. 이 방법을 사용하기를 원한다면 http://creators.xna.com/en-US/utilities/spritebatchshader에서 SpriteBatch 셰이더 자체를 수정하는 것이 좋습니다.이 전체 메서드는 끔찍하지만 - 픽셀 셰이더를 사용하고 많은 양의 데이터를 GPU에 푸시해야한다면 텍스처가 미친 픽셀 단위의 지오메트리보다 적은 대역폭을 사용하게됩니다! –