예, 화면을 지우고 매번 다시 그립니다. 그것이 얼마나 많은 게임 엔진이 작동하는지입니다.
그러나 나는 또한 당신은 아마 너무 많은 입자를 그리기 위해 노력하고
를 사용하여 명확 화면 시도 moves.I 비행기로 축적에 이동 점의 거대한 숫자를 표시해야합니다. 100 개의 입자 (또는 수백, 그러나 천 미만)는 혜성 흔적을 그리기에 충분해야합니다. 200 개 (BIG) 입자 만 있으면 매우 설득력있는 구름을 만들 수 있습니다.
또한 혜성 흔적을 그리는 데 포인트가 필요하지 않습니다. 알파 블렌딩을 사용하면 삼각형을 사용하여 반투명 광선 - 사브르 유사 선을 쉽게 그릴 수 있습니다.
라이트 세이버와 같은, 플라즈마 등 (예를 들어, RGB 255, 10, 10)을 백색의 작은 색조 색상을 사용해야 불꽃 같은, 전통적 여기 glBlendFunc(GL_SRC_ALPHA, GL_ONE)
가 사용 그려 몇 가지 예입니다. 예는 사용해야하는 삼각형 메쉬를 보여줍니다. 숫자는 알파를 나타냅니다. 0 - 완전 투명, 1 - 완전 불투명. 슬래시는 필요한 경우 삼각 측량을 나타냅니다."|"
빛나는 라인
0--0--0--0
| \| | /|
0--1--1--0
| /| | \|
0--0--0--0
repeat
0--0
| |
1--1
| |
0--0
to add more segments
0--0--0--0
| \| | /|
0--1--1--0
| | | |
0--1--1--0
| /| | \|
0--0--0--0
repeat
0--0
| |
1--1
| |
1--1
| |
0--0
to add more segments.
당신은 혜성 흔적을 위해 그런 일을 사용할 수있는 두꺼운 빛나는 라인 : -와 ""얼굴 가장자리를 나타냅니다. 스파크 등을 위해 작은 입자를 몇 개 추가하십시오. 텍스처도 잊지 마세요. 텍스처를 사용하면 텍스처가없는 지오메트리를 사용하여 모든 것을 그리려는 것보다 더 많은 세부 사항을 쉽게 추가 할 수 있습니다.
--edit--
은 "연기에 매우 큰 질감 입자를 사용할 필요가
어떤 종류의 연기를 구현하려면 ...
- 비행기의 흰색 흔적 "/"흐린 "질감. google 이미지에 google "smoke particle texture"를 사용하면 내가 말하는 것을 볼 수 있습니다.
- "큰"입자는 일반적으로 포인트 스프라이트를 사용하여 그려지 지 않습니다 (가까운 거리에서 화면보다 커질 수 있기 때문에). "광고판"이 필요합니다. 빌보드는 항상 카메라를 바라 보는 광장입니다.
- 연기 질감의 색상 채널은 완전히 흰색이어야합니다 (정점 색상을 사용하여 개별 입자에 색상을 지정할 수 있음). 그리고 "smoke"는 알파에 칠해 야합니다.
- 연기 입자는 그릴 때 깊이로 정렬해야하며 가장 가까운 곳에서 가까운 곳으로 렌더링해야합니다 (카메라에서). 삽입 정렬 알고리즘은 "부분적으로 정렬 된"데이터와 잘 맞습니다.
- 연기 입자는 깊이 쓰기 기능을 사용하지 않도록 설정해야합니다 (정확하게 기억하는 경우
glDepthMask(0)
).
- 연기 입자는 블렌드를 사용해야합니다.
- 그러나 연기 내에 화염이있는 경우 불꽃은
glBlendFunc(GL_SRC_ALPHA, GL_ONE)
을 사용해야합니다. 화염 입자는 섞어서 (즉, 입자와 함께 깊이로 정렬하여) 또는 연기 후 (입자 시스템을 별도로 사용하는 경우)에 그려야합니다.
- 연기를 사실적으로 만들려면 모든 입자에 작은 초기 속도를 지정하고 천천히 시간의 경과에 따라 크기를 늘리며 더 투명하게 만듭니다. 입자가 완전히 투명 해지면 입자 시스템에서 제거하십시오.
- 반투명 알파 혼합 표면을 그릴 때는 알파 테스트를 활성화하고 알파 == 0 인 픽셀을 잘라냅니다. 이렇게하면 렌더링 속도가 빨라집니다. (중요한 것은, 적당한 하드웨어에서도 너무 많은 연기 입자가있는 프레임 속도를 없앨 수 있기 때문입니다.)
- 많은 광고판 연기 입자를 사용하면 특히 매우 가깝기 때문에 값 비쌀 수 있습니다. 따라서이 연기와 입자가 많은 부분을 채우기를 원한다면 가 크고 눈높이에 떠 다니고 전체 화면 영역을 반투명 표면으로 여러 번 덮으면 여러 가지 체적 안개 기술을 연구하려고 할 수 있습니다.
- 행렬을 사용하여 개별 입자를 이동하지 마십시오. 한 통화 당 하나의 입자를 그려서는 안됩니다. 한 번에 모두 그려보십시오.이 방법은 훨씬 빠릅니다.
답변 해 주셔서 감사합니다. 당신의 생각은 정말 멋지지만, 제가 깨닫게 된 것은 당신이 실수하지 않는다면 혜성의 짧은 꼬리를 보여 주려고한다는 것입니다. 내가 원했던 것은 영원히 남겨진 비행기의 흰 흔적과 같은 것이 었습니다. 내가 줄 수있는 또 다른 예는 페인팅 애플리케이션입니다. 그리는 동안 움직이는 페인트 브러시와 페인트 흔적을 표시 할 수 있어야합니다. 당신이 내가 전달하려는 것을 이해했으면 좋겠다. 나는 당신의 노력과 상세한 대답에 정말로 감사한다. 나는 그것이 미래에 나를 도울 것이라고 확신한다!! –
완벽! 감사... –