0 Basic tente descobrir a implementação de AdditionalLit (fonte de luz pontual) do pipeline de renderização do UnityURP

contente

0 é realmente o melhor

a natureza do código

entrada de código

 análise de código

lógica de código

Código

pratique por conta própria


0 é realmente o melhor

Na verdade, não pode ser 0 fundação, mas se você é 0 fundação, como disse Zhang Sanfeng, esqueça seu pai

Se você começar a olhar para o URP atual do Unity ou o Standard Shader agora

1- Se você conhece o "Essentials of Getting Started" da Sister Lele, foi publicado em 2015 e começou a escrever em 2013. Foi escrito com elegância, e agora você olha para o Shader interno do Unity com certeza.

2- Se você tem muitos anos de experiência em programação, você vai pensar que o código que você não consegue entender é definitivamente um bom código, mas pense com cuidado, o código que você não consegue entender hoje em dia é apenas a linguagem assembly de 100 anos atrás

Então, primeiro do palácio, e depois olhe para baixo:

a natureza do código

entrada de código

<Encontre o diretório Shader no diretório Package>

 

 análise de código

<Muito código, não olhe para ele, apenas uma frase: XXXX é citado>

 600 linhas de código, apenas esta frase é útil, "Outros não precisam ler"

lógica de código

A lógica de descobrir a fonte de luz do ponto iluminado Spot está no arquivo LitForwradBase.hlsl

Eventualmente, você descobrirá que SurfaceData é inicializado e, em seguida, esse parâmetro é passado para o método UniversalFramentPBR() para calcular a cor final

 

half4 LitPassFragment(Varyings input) : SV_Target
{   
    //.............
     SurfaceData surfaceData;
    InitializeStandardLitSurfaceData(input.uv, surfaceData);

    InputData inputData;
    InitializeInputData(input, surfaceData.normalTS, inputData);

    half4 color = UniversalFragmentPBR(inputData, surfaceData);

Código

pratique por conta própria

Acho que você gosta

Origin blog.csdn.net/avi9111/article/details/124305516
Recomendado
Clasificación