심리 잉크 얼룩 (일명 심리 테스트 사진) 셰이더


12

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오 여기에 이미지 설명을 입력하십시오
(출처 : bonnefil.com )

이 장엄한 패턴이 게임에 적용되기를 원합니다. 지금까지 나는 알아 냈습니다 ...

  1. 한쪽을 그린 다음 왼쪽과 오른쪽으로 두 번 렌더링하십시오.
  2. 이 패턴을 한쪽에 어떻게 렌더링합니까? 흠 ...
  3. 도움이 필요합니다.

이를 위해 쉐이더 작성에 대한 통찰력이 필요합니다.

쉐이더 피팅 작업이 아니라고 생각되면 다른 솔루션으로 알려주세요!

그러나 GPU없이 이것을 달성 할 수있는 가능한 접근법은 없습니다. (당신은 rorscach 그림의 준비된 사진을 저장하도록 제안하지 않는 한)


어떤 엔진 / 언어 / 프레임 워크를 사용하고 있습니까?
akaltar

@akaltar 유니티 Shaderlab
블루 버그

답변:


15

그 진부한 외모를 얻으려면 가장 좋은 방법은 잉크 표시, 줄무늬 및 드리블의 이미지 라이브러리를 조립하는 것입니다.

그런 다음 이미지의 절반 이상을 무작위로 배치하고 회전하기 위해 몇 가지를 임의로 선택할 수 있습니다. (심선쪽으로 편향되어 있으므로 로르 샤흐 테스트의 중간이 가장 밀도가 높습니다. 파티클 시스템을 사용하여이 산란을 수행 할 수 있습니다)

랩 모드를 미러로 설정하여 텍스처로 렌더링하면 이제 사용자 정의 셰이더없이 대칭 잉크 얼룩을 표시 할 수 있습니다.

이 방법으로 얻을 수있는 결과의 예는 다음과 같습니다.

표시 이미지 라이브러리에서 조립 된 잉크 블랏

이러한 고유 한 모양이 마음에 들지 않으면 두 개의 노이즈 패턴이 서로 스크롤되는 임계 값을 설정하는 셰이더를 사용하여이 작업을 수행 할 수도 있습니다. 그것은 대칭 불규칙한 모양을 얻습니다. 원하는 경우 시간이 지남에 따라 지속적으로 변경 될 수 있지만 잉크처럼 보이지는 않습니다.

이것은 dnk drone.vs.drones가 다른 답변에서 제안하는 방법이며 다음과 유사한 결과를 줄 수 있습니다.

소음에서 임계 값을 인 클로 크

편집 : 다음은 노이즈 기반 접근법의 작동 방식에 대한 분석입니다.

먼저 우리는 약간의 소음으로 시작합니다. 난류라고도하는 1 / f 노이즈 는 꽤 잘 작동합니다. 타일링 노이즈를 텍스처에 베이킹 한 다음 그로부터 하나 이상의 샘플을 합산하여 오프셋 / 회전을 변경하여 모양을 다양하게 변경할 수 있습니다.

난기류 임계 값

이 값을 직접 임계 값으로 지정하면 오른쪽과 같은 이미지가 나타납니다. 모양은 정확하지만 Rorschach 테스트처럼 보이기 위해서는 중간 부근에서 가장 짙고 가장자리쪽으로 가늘어 야합니다.

상단에 그라디언트를 추가 하여이 작업을 수행 할 수 있습니다 (명확성을 위해 과장된 명암)

가장자리 마스크 노이즈에 마스크 추가

그런 다음 (sum - blackLevel) * contrast

(여기서 blackLevel반점과 결과의 정도를 제어하는 ​​매개 변수가 있습니다-값이 높을수록 검은 색이 더 단단 해짐- contrast가장자리의 선명도를 제어합니다)

임계 값

이 이미지를 미러링하면 위의 Rorschach 예제가 제공됩니다.


드론 방법을 통해 달성하려고합니다. 어떻게했는지 자세히 설명해 주시겠습니까? 나는 전통적인 펄린 노이즈 기능을 사용하고 있지만 내 임의의 도트 수집처럼 보입니다.
Blue Bug

@BlueBug, 위의 단계별 분류를 추가했습니다.
DMGregory

8

펄린 노이즈 (적절한 흑백 그라디언트 사용)를 시도한 다음 오른쪽 / 왼쪽 미러링을 적용 할 수 있습니다.

여기에 이미지 설명을 입력하십시오


펄린 소음인가요? 그것은 전통적인 펄린 노이즈와 크게 다르게 보입니다. 와우 그것은 영화 파수꾼의 것과 마찬가지로 "흐린 잉크"처럼 치명적으로 보입니다.
Blue Bug

2
그것은 모두 노이즈 값-> 픽셀 값의 전달 기능에 달려 있습니다. 여기에는 아주 작은 윈도우 레벨이있는 ​​것 같습니다. 이로 인해 적은 양의 부드러운 가장자리가있는 흑백 간의 뚜렷한 대비가
나타납니다.

그래, 그냥 회색 주위 어딘가에 고역 통과 필터를 한 다음 고점을 날려 버립니다 (즉, 큰 수를 곱하고 255 또는 최대 픽셀 값이 무엇이든 상단을 두피하십시오)
Shayne
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.