2010-12-15 10 views
5

입자 시뮬레이션을 기반으로 OpenGL에서 파이어 효과를 렌더링하려고합니다. 나는 다른 모든 속성뿐만 아니라 위치와 온도 (따라서 색상)를 갖는 수백 개의 입자를 가지고 있습니다. 입자가 너무 넓게 펼쳐지기 때문에 단순히 glut을 사용하여 solidSphere을 렌더링하는 것은 현실적이지 않습니다. 파티클 정보를 기반으로 화재를 어떻게 그릴 수 있습니까?OpenGL에서 렌더링 렌더링

+0

소리를 내 보간 할 필요가 있거나이를 대신하는 몇 가지 방법을 찾으십니까? – ccook

+0

그래, 아직 익숙하지 않아서 OpenGL에서이 보간법을 수행 할 방법을 찾고있다. 어떤 종류의 견고한 동역학 모델 일 수도 있습니다 ... 투명도는 가장자리에 현실감을 불어 넣는 것 또한 중요합니다. – Etan

답변

5

그냥 현실적인 화재 효과 나는 어떤을 사용을 만들려고하는 경우 다른 응답에서 권장하는대로 기존 라이브러리의. 그러나 그것은 당신이 시뮬레이션을 보여준 후에 나인 것처럼 보입니다.

시도해 볼 가치가있는 직접적인 해결책은 중간에 흰색이 흰색이고 가장자리쪽으로 투명하게 희미 해지는 광고판 (즉, 항상 카메라를 향한 그래픽 이미지)으로 현재의 구체를 대체 할 수 있습니다. 분명히 위치를 지정하고 당신의 입자에.

더 나은 해결책은 그리드의 각 정점의 투명도와 색상을 제어 할 수있는 2D 그리드 세트로 불꽃에 접근하는 것입니다. OpenGL에서 Quad에서 평면을 만들어 입자 시스템을 사용하여 각 꼭지점의 색상과 투명도를 (가장 가까운 입자로부터 내삽을 통해) 계산할 수 있습니다. OpenGL은 정점 사이의 각 픽셀을 보간하고 '영역의 평균 입자'를 부드럽게 보여줍니다.

+0

Nice! 후자는 절차적인 텍스처로 구현 될 수 있습니다. 흠 ... 아니요, 그건 이해가되지 않습니다. 각 조각 셰이더 인스턴스는 아마도 너무 많이 할 것입니다. 따라서 불을 렌더링하기 전에 프레임 당 한 번 텍스처를 생성해야합니다. – Kos

+0

감사. 그 2 차원 격자에 대한 정보를 더 주시겠습니까? – Etan

+0

우리가 원하는 것을 정확히 알면 정말 도움이됩니다. 시뮬레이션을 실시간으로 그리거나 특정 스틸을 렌더링하려합니까? 시뮬레이션을 충실하게 표현하고 싶습니까? 아니면 눈에 좋게 보여야합니까? – Elemental

5

당신은 아마 화재 효과를 렌더링하는 입자 시스템을 사용하려면, 여기에 그냥 작업을 수행하는 방법에 대한 NeHe 자습서는 다음과 같습니다 http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=19

+0

어떻게 작동 하는지를 알고 싶기 때문에 기존 파티클 시스템을 사용하고 싶지는 않습니다 .- – Etan

관련 문제