2013-08-25 1 views
1

렌즈 플레어 응용 프로그램을 만드는 방법을 배우는 중입니다. 나는 기본 구성 요소의 대부분을 파악했고, 지금은 은은하게 빛/반짝임/spikeball과 같은 더 복잡한 것들로 이동하고있어 여기에서 볼 수 있듯이했습니다 http://wiki.nuaj.net/images/e/e1/OpticalFlaresLensObjects.pngC에서 태양 광선, 반짝임, 파열, 반짝임 등을 그리는 데 도움이 필요합니다.

또는이 : http://ak3.picdn.net/shutterstock/videos/1996229/preview/stock-footage-blue-flare-rotate.jpg

일부가 페이드 아웃하면서 크기가 증가하거나 감소하는 동안 중심에서 바깥 쪽으로 퍼지는 입자를 만드는 것이 좋습니다.하지만이 방법을 시도해 보았습니다. 너무 많은 중첩 루프가있어 성능이 끔찍합니다.

다른 사람들은 가운데 흰색에서 반경 검정까지 원형 그라디언트를 그리고 일부 알고리즘을 사용하여 영역을 밝게하고 어둡게하여 광선을 생성 할 것을 제안했습니다.

누구에게 아이디어가 있습니까? 나는이 하나에 정말로 붙어있다.

C와 비슷한 제한된 컴파일러를 사용하고 있지만 앤티 엘리 어싱, 미리 정의 된 모양 등에 액세스 할 수있는 권한이 없습니다. 모든 항목을 손으로 코딩해야합니다.

도움이 될 것입니다.

답변

0

나는 큰 원 선택을 작성한 다음 방사형 그라디언트를 사용합니다. 그래디언트의 각면은 흰색이지만 한면에는 100 % 알파가 있고 다른면에는 0 %가 있습니다. 그래디언트 도구를 사용하여 원 안에 그라디언트를 그립니다. 선택을 취소하고 변형 도구를 사용하여 비뚤어 지거나 감각을 부셔 버리십시오. 그런 다음 여러 번 복제하고 필요할 때 Ctrl 키를 누른 채로 나선형이나 원 모양을 만듭니다. 그런 다음 여러 레이어가 원하는 회전 또는 디자인에있게됩니다. 폴더에서 그룹화 한 다음 다른 변환 또는 비뚤어 짐을 사용하여 한 번에 모두 효과를 낼 수 있습니다. 이 진짜 작은 것을 사용할 때, 그들은 작은 별과 같습니다. 그러나 서로를 만들기 위해 각각을 만들 때 많은 다른 일을 할 수 있습니다. 마지막 불투명도보다 불투명도를 낮추는 것처럼 ...

+0

안녕하세요. 답장을 보내 주셔서 감사합니다. 에릭. 그러나 이것은 포토샵과 같은 앱에서 텍스처를 만드는 법을 보여 주며 모든 작업을 수행하는 방법을 알고 있습니다. 그것은 간단합니다. 이 코드를 사용하여 생성하는 방법에 대해 설명합니다. 내가 게시 한 예제와 비슷한 것을 얻을 수있는 유용한 알고리즘을 찾고 있습니다. 물론 코드를 사용하여 실시간으로 생성하는 것은 훨씬 어렵습니다. – Rich95

0

나는 '코드를 통해'렌즈 플레어를 수행하는 방법에 대한 몇 가지 예를 발견했습니다. 이상적으로는 post-process으로 지정하는 것이 좋습니다. 즉, 일반 렌더링을 완료 한 후에 이미지를 추가로 처리해야합니다.

이 단계에서는 조각 쉐이더가 적절합니다. 내가 찾은 가장 쉬운 버전은 this one입니다. 기본 아이디어는 다음과 같습니다

  1. 이미지에서 실제로 밝은 부분을 식별하여 잠재적으로 샘플링 할 수 있습니다.
  2. 조각을 이미지의 중심부로 촬영하고 길을 따라 일부 픽셀을 샘플링합니다.
  3. 샘플을 누적하고 추가 처리 - 색채 왜곡 등을 적용하십시오.

그리고 다양한 옵션을 사용할 수 있습니다.

또 다른 일반적인 대안은

  1. 는 카메라에서 경로를 따라 빛에 기본 이미지 (원, 칸)의 집합이 밝은 개체의 무리로 렌더링 것 같다 (들) .
  2. 이 이미지를 일반 장면 렌더링 위에 결합하십시오.

문제는 렌즈 플레어를 켜는시기를 결정하는 것입니다. 문제는 카메라에서 빛이 보이거나 차단되는지 여부에 달려 있기 때문입니다. GPU Gems가 더 나은 옵션으로 구출됩니다.

좀 더 심각하고 물리적으로 구현 된 것은 in this paper입니다. 이것은 렌즈 플레어를 만드는 실시간 버전이지만 버텍스 및 지오메트리 셰이더 모두을 지원할 수있는 하드웨어가 필요합니다.

관련 문제