Carrier Command 2: Guia de modificação de sombreador de tela

Este guia destina-se a poupar-lhe a frustração de tentativa e erro de aprender a semântica do shader para personalizar as telas da maneira que você quiser. Não abra meus arquivos mod para verificar agora, há um guia de referência de verificação fácil de como consegui o efeito x.

 

Introdução

O que é um sombreador de tela?

Parece bastante básico de uma pergunta, mas isso levou alguma caça para encontrar.
Um sombreador de tela é um arquivo sombreador encontrado em rom_0/shaders com os nomes dos arquivos screen_crt.glslscreen_crt_hud.glslholomap_post.glsl.
O primeiro é responsável pelos efeitos CRT nas telas em todo o seu controle de ponte, como ruído estático, linhas de varredura e até mesmo aquele temido deformação de borda de vértice que faz parecer que foi dobrado como um pedaço de lata de má qualidade! O segundo é responsável pelos efeitos HUD crt nas câmeras do veículo e na câmera do periscópio da sua nave, mas você nunca percebe isso. O final lida com a holotable e como ela se parece. Embora o holotable tenha sua própria luz em seu arquivo de objeto, é puramente para fins decorativos de criar uma luz de área barata para parecer que ilumina a área ao seu redor mais do que uma tela. cores de qualquer maneira, não há necessidade de alterá-lo.

As próximas três seções tratam de campos editáveis ​​individuais na ordem do primeiro ao último. Consulte-os em conformidade.

Screen_CRT.glsl, telas regulares

Este é de longe o mais extenso para modificar, então vamos simplesmente entrar nele.

Resolução da tela x/y

controla a resolução relativa do efeito com base na resolução do seu monitor ou jogo, por algum motivo. também controla o plano geral de efeitos adicionados, mas eu não toquei nisso.

pi

não toque nisso, usado para os efeitos RNG

deformar as coordenadas do vértice na borda da tela

o primeiro grande bloco de coisas puras, porém você só pode editar dois campos. o primeiro valor (padrão 1.0) é o valor real da intensidade. definir isso para 0 removerá o efeito. o outro valor (padrão 0.5) é a centralização do efeito de distorção. então mudar para 1 irá chutar o efeito para a direita enquanto 0 irá chutar o efeito de distorção para a esquerda. por que você iria querer isso eu nunca saberei, mas desabilitar os cantos arredondados por isso fará com que as telas se sobreponham às bordas do modelo de tela não quadrada no jogo.

linhas de varredura

não se intimide com os números aqui, vamos detalhar
fator de distância é a distância entre as linhas, sendo 4 o padrão. a próxima linha depois disso é quantos pixels são afetados por essa distorção da linha de varredura. o brilho da linha de varredura é o quão brilhante a linha de varredura é em uma proporção dos dois últimos números. nestes, o efeito é sempre à esquerda e a saída original da tela é à direita. portanto, um valor de 0.2, 0.8 seria 80% da tela normal com 20% de visibilidade da linha de varredura. números maiores que 1 causarão cores sólidas e eu não recomendo a menos que você queira ver um monólito gigante à distância (erro de shader). o tempo de animação é o quão rápido as linhas de varredura rolam, é como você espera, mas a escala de tempo em si é desconhecida (linear? multiplicador? segundos???). o valor de 1.0 no conjunto triplo de 4.0, 0.0 e 1.0 é a largura da linha de varredura, ou talvez eu os tenha para trás idk

aberração cromática

isso é uma coisa simples, compensa as cores vermelha e azul na tela para a esquerda e para a direita de acordo. o primeiro valor é o intergar de visibilidade da aberração, enquanto o segundo valor é a intensidade da aberração. bom se você quiser tornar suas telas compatíveis com aqueles óculos vermelhos e azuis baratos, eu acho.

coord de vértice deformado 2

este é o efeito distorcido para a aberração por algum motivo, a menos que eu tenha mexido com a aberração, nunca mexi com isso, mas poderia ser bom em hologramas ou algo assim

o efeito de ruído

as próximas duas seções lidam com ruído
resolução de ruído é o tamanho dos pixels de ruído, números mais altos significam pixels menores, mas você precisa de um múltiplo de 2. Eu não tenho idéia do que a animação rand faz, mas eu sei que a mistura (padrão 0.1 0.9) é 90% tela 10% ruído. Esteja avisado de que aumentar drasticamente o fator de ruído tornará sua tela mais escura por algum motivo. por último, o valor da quantidade de ruído de cor é o quão barulhento é, apenas pense o que quiser e adicione alguns zeros, mas o ruído parece escalar com a distância da tela estranhamente.

cor

esta é de longe a seção mais fácil, valores em formato rgb
a luz de fundo é apenas isso, a luz de fundo emitida por trás das coisas. por exemplo, meu mod de tela dakrmode apenas define cada valor de cor de luz de fundo como 0. os próximos três valores são na verdade filtros de cor e podem bloquear a luz definindo um valor como 0. foi assim que fiz minhas telas com uma única cor, uma mistura de os dois, ou apenas realmente ♥♥♥♥♥♥♥ AZUL. não defina valores maiores que 1, apenas lhe dá outro monólito branco sinistro. apenas esteja ciente de que bloquear uma cor ocultará certos elementos dessa cor, como o azul é a cor da massa de terra e o verde também é usado, enquanto o ícone de falta de munição para a tela de carregamento de veículos é vermelho. é por isso que eu digo que minhas telas de lcd mod populares são um downgrade, pois literalmente torna o holomapa quase inútil devido a você ser incapaz de ver o navio em qualquer faceta junto com as ilhas.

fator vinheta

isso não faz... nada. eu mudei um monte, mas ele não faz nada que parece

amostra de cor

mais uma vez nunca tocou isso, mas parece ser brilho de saída geral. então eu acho que você pode fazer telas escurecer?

Screen_CRT_HUD.glsl, A câmera

este é menor, mas contém a maioria dos efeitos.
uma vez que segue quase o mesmo que screen_crt, vou apenas examinar as exceções e o que elas fazem.

note, a resolução da tela não NÃO alterar a resolução da câmera.

linhas de varredura

aqui eles são muito mais resumidos e, mais tarde, as linhas de varredura são repetidas, mas não tenho ideia de por que eles fizeram isso. o mesmo de sempre, apenas parecendo magro

abnegação

isso afeta o próprio HUD, não a saída da câmera infelizmente

efeitos distorcidos

não importa o quanto eu mexa com isso, a vinheta permanecerá, então quaisquer dicas sobre como remover isso são apreciadas
caso contrário, isso não faz basicamente nada

backlight

sua luz de fundo iluminará toda a sobreposição, e realmente muito legal para uma câmera de boa aparência, mas o principal uso é para recolorir o hud se você encontrar um equilíbrio no brilho entre o flashbanging ao carregar e um hud bonito com o qual você está feliz.

filtro de cor

apenas filtra o hud infelizmente, mas em conjunto com a luz de fundo você pode fazer uma câmera de visão noturna bastante doente

fator de vinheta

não faz nada até onde eu sei

Holomap_Post.glsl, A holotabela

este é de longe o grupo mais difícil de trabalhar, então vamos passar por cima dele.

aberração

aberração pode ser usada para vender uma aparência holográfica de algo, mas caso contrário você pode deixá-la ou desligá-la.

barulho

há de fato ruído, mas ele apenas se sobrepõe aos objetos do holomapa, como a grade do holomapa e os recursos da ilha e qualquer outra coisa que ele renderize. apenas não o brilho azul decorativo de fundo ou qualquer outra coisa

cores personalizadas

para obter cores personalizadas, cole isso no arquivo logo antes da última linha em colors(color_sample):
vec3 backlight_color = vec3(0.0, 0.0, 0.0);

color_sample_r = mix(backlight_color.r, 1.0, color_sample_r);
color_sample_g = mix(backlight_color.g, 1.0, color_sample_g);
color_sample_b = mix(backlight_color.b, 1.0, color_sample_b);

isso é simples, mas vamos passar por cima disso
-a luz de fundo pode de fato alterar a cor de fundo da tela, mas quando mais de 1 ou mais valores, ela pode acender um grande cubo com essa cor para REALMENTE vender a aparência holográfica
-os filtros de cores funcionarão, mas os valores que ocultam o azul tornarão as ilhas invisíveis no mapa, não os nomes. você pode fazer alguns truques reais para fazê-lo encaixar cores nessas co-ords dessas cores, mas eu não mexi com isso.
-A pasta de cópia padrão do screen_crt terá um “* screen_crt_effect_factor”, isso faz com que um monólito branco grande e gordo apareça à distância e o holomap pare de funcionar. apenas removê-lo até eles;

existe uma maneira de fazer scanlines, mas eles não funcionam corretamente, então uma função de código para scanlines apropriados em vez do efeito quebrado das telas regulares seria muito apreciada.

Mais guias:

Deixe um comentário

ArabicEnglishFrenchGermanItalianJapaneseKoreanPortugueseSpanish