Rorschach ink blot (também conhecido como fotos de testes de psicologia)


12

insira a descrição da imagem aqui

insira a descrição da imagem aqui insira a descrição da imagem aqui
(fonte: bonnefil.com )

Quero que esse padrão magnífico esteja no meu jogo. Até agora eu descobri ...

  1. Desenhe um lado e depois renderize-o duas vezes para a esquerda e para a direita.
  2. Como renderizo esse padrão de um lado? Hmm...
  3. Eu preciso de ajuda.

Eu preciso de algumas dicas sobre como escrever shader para isso.

Se você acha que não é uma tarefa adequada para sombreadores, entre em contato, espero que com uma solução alternativa!

No entanto, não vejo uma abordagem possível para conseguir isso sem a gpu. (a menos que você sugira armazenar várias fotos preparadas da foto de Rorscach)


Qual mecanismo / idioma / estrutura você está usando?
akaltar

@akaltar Unity Shaderlab
Blue Bug

Respostas:


15

Para obter uma aparência com tinta autêntica, sua melhor aposta é provavelmente montar uma biblioteca de imagens de respingos de tinta, listras e dribles.

Em seguida, você pode selecionar aleatoriamente algum número para posicionar e girar aleatoriamente sobre metade da imagem. (Com um viés na borda da costura, para que o meio do teste de Rorschach seja mais denso. Você pode usar um sistema de partículas para fazer essa dispersão)

Renderize isso em uma textura com o modo de quebra definido para espelhar e agora você tem um borrão de tinta simétrico que pode exibir sem nenhum sombreador personalizado.

Aqui está um exemplo do tipo de resultado que você pode obter desta maneira:

Mancha de tinta montada a partir da biblioteca de imagens splat

Se você não se importa com essas formas de tinta exclusivas, também pode fazer isso com um sombreador que limita dois padrões de ruído passando um pelo outro. Isso ganha uma forma irregular simétrica, que pode ser alterada continuamente ao longo do tempo, se você quiser, mas não se parecerá com tinta.

Este é o método sugerido pelo dnk drone.vs.drones em outra resposta e pode fornecer resultados semelhantes a este:

Mancha de tinta limiar de ruído

Edit: aqui está uma explicação de como a abordagem baseada em ruído funciona ...

Primeiro começamos com algum barulho. 1 / f ruído , muitas vezes chamado de turbulência, funciona muito bem. Você pode assar o ruído de lado a lado em uma textura e depois somar uma ou mais amostras, alterando as compensações / rotações para variar as formas que obtém.

Turbulência Limite

Se limiarmos isso diretamente, obteremos uma imagem como a da direita. As formas estão quase corretas, mas para parecer um teste de Rorschach, deve ser mais denso perto do meio e mais fino em direção às bordas.

Podemos fazer esse trabalho adicionando um gradiente por cima (contraste exagerado aqui para maior clareza)

Máscara de borda Máscara adicionada ao ruído

Limite-o tomando (sum - blackLevel) * contrast

(Aqui blackLevelestá um parâmetro que controla o quão espantoso é o resultado - valores mais altos significam preto mais sólido - e contrastcontrola a nitidez das bordas)

Limite

O espelhamento desta imagem fornece o exemplo de Rorschach acima.


Eu estou tentando alcançar através de métodos de drones. Você poderia elaborar como isso é feito? Estou usando a função tradicional de ruído perlin, mas a minha parece uma coleção de pontos aleatórios.
Blue Bug

@BlueBug, adicionei um detalhamento passo a passo acima.
DMGregory

8

Você pode tentar o ruído perlin (usando um gradiente de preto / branco adequado) e aplicar o espelhamento direito / esquerdo

insira a descrição da imagem aqui


Isso é ruído permanente? Isso parece drasticamente diferente do tradicional ruído permanente. Uau, que parece incrivelmente "tinta nublada", igual à do filme Watchmen.
Bug Azul

2
Tudo depende da sua função de transferência do valor do ruído -> valor do pixel. Parece que não é um pequeno nível de janela aqui o que resulta no contraste entre preto e branco com uma pequena quantidade de bordas suaves
MistaGiggles

Sim apenas fazer um filtro em algum lugar de passagem alta em todo o cinza, em seguida, explodir os altos fora (ou seja, multiplique por um grande número e couro cabeludo a parte de cima em 255 ou qualquer valor de pixel máximo é)
Shayne
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.