Jump to content
ytsejam

Deepmatcap

Recommended Posts

A questo indirizzo link potete scaricare free lo shader deepMatcap di stefan minning. L'autore sta creando una serie di shaders per Maya e mental Ray nello specifico.

Questo shader simula il comportamento di qualsiasi materiale solo inserendo una mappa appositamente creata. L'autore ha dei sample di default interessantissimi, come la mappa zbrush, che simula proprio il materiale standard di zbrush. Non è affetto da nessuna luce in scena.

Thank you very much stefan.

Share this post


Link to post
Share on other sites
Compatibile anche con 3dsmax?

Il file .dll può essere lo stesso, bisogna solo editare per chi lo sa fare un file .mi con preset di interfaccia per 3dsmax

@MmAaXx:non ho capito.

senza nessuna fonte luminosa il materiale esce cosi ?

Yes e non è influenzato neanche dal FG o meglio si allungano i tempi di renders senza un risultato visivo. E' un ottimo shader per le previsualizzazioni semplici, ma interessante. Pensate che su maya si modella ad altissimo dettaglio, basta avere le capacità ed una buona scheda video. :)

Il materiale con sample zbrush è bellissimo.

Share this post


Link to post
Share on other sites

Mmh interessante.. e il funzionamento?

Mappa la texture assegnata su una sfera e poi associa il colore alla normale corrispondente, per poi utilizzare questa associazione colore-normale per renderizzare il modello? Mi sembra plausibile, visti anche i risultati...

Share this post


Link to post
Share on other sites

non ho ancora capito come puo essere sfruttato, perche nel momento che non sfrutta nessuna sorgente luminosa, quando questo materiale viene inserito in un contesto dove invece ci sono delle luci lo shader non si adattera...

vabeh cmq domani in ufficio lo provo su 3dmax e vedo.

grazie mille!

Share this post


Link to post
Share on other sites
non ho ancora capito come puo essere sfruttato, perche nel momento che non sfrutta nessuna sorgente luminosa, quando questo materiale viene inserito in un contesto dove invece ci sono delle luci lo shader non si adattera...

vabeh cmq domani in ufficio lo provo su 3dmax e vedo.

grazie mille!

Tu hai ragione, ma questo shaders, per quel che riguarda la visualizzazione in approssimazione, secondo me può funzionare bene. Pensa quando vuoi fare vedere anche una preview semplice. Non hai neanche bisogno di settare nessuna luce, lanci il render. Soprattutto per quel che riguarda il fake del zbrush material, che per molti modelli è carino.

Share this post


Link to post
Share on other sites
Mappa la texture assegnata su una sfera e poi associa il colore alla normale corrispondente, per poi utilizzare questa associazione colore-normale per renderizzare il modello? Mi sembra plausibile, visti anche i risultati...

Esatto, viene calcolata la normale rispetto ad un vettore e in base alla normale risultante accede alla texture, non è molto nuova come tecnica e viene usata anche in real time.

Inoltre se come vettore si usa la direzione di provenienza di una luce si ha anche il materiale che interagisce con una luce.

Ma il materiale si vede solo in render o anche nel viewport?

Se vi interessa qua ci sono un po' di palle colorate. :D

http://www.zbrushcentral.com/zbc/showthread.php?t=46175

Share this post


Link to post
Share on other sites
Avevo provio voglia che venissi tu a spiegare tecnicamente, come si comporta questo shader. :)

In letteratura si chiama Litsphere.

Se ti interessa questo è più o meno lo shader in formato cgFX.

Caricalo con il plug-in cgfx di Maya, associagli una point light o un locator e una texture.

float4x4 World : World;

float4x4 WVP : WorldViewProjection; 


float4 light_Position 

< string Space = "World"; > = {0.0f, 15.0f, 0.0f, 1.0f};


sampler2D litSphereTx = sampler_state{

  generateMipMap = true;

  minFilter = LinearMipMapLinear;

  magFilter = Linear;

};


struct a2v{

	float3 position : POSITION;

	float3 norm	 : NORMAL;

};


struct v2f {

  float4 position : POSITION;

  float2 texCoord : TEXCOORD0;

 };


// vertex shader

v2f lsvertexShader(a2v IN)

{	

	v2f OUT;

	float4 wPos = float4(IN.position,1.0);

	float4 n = float4(IN.norm, 0.0);



	float3 lightDir  = normalize(light_Position-wPos).xyz;

	float3 wTangent  = normalize(cross(float3(0.0, 1.0, 0.0), lightDir));

	float3 wBinormal = cross(wTangent, lightDir);

	float3 wNormal   = mul(World, n).xyz;


	OUT.texCoord.x   = dot(wNormal, wTangent)*0.5+0.5;

	OUT.texCoord.y   = dot(wNormal, wBinormal)*0.5+0.5;

	OUT.position	 = mul(WVP, wPos);

	return OUT;	

}


// fragment shader

float4 lsfragShader(v2f IN) : COLOR

{

	return tex2D(litSphereTx, IN.texCoord);

}


technique litSpherePosition

{

	pass

	{

		DepthFunc = LEqual;

		DepthTestEnable = true;

		VertexProgram = compile arbvp1 lsvertexShader();

		FragmentProgram = compile arbfp1 lsfragShader();

	}

}

Non è preciso come la versione Mental ray ovviamente e ha qualche artefatto sui bordi e per alcune posizioni della luce.

Share this post


Link to post
Share on other sites

Sempre molto interessante quello che tira fuori dal cilindro stefan minning.

Ha creato un materiale, il deepPhisicalMaterial in grado di simulare i materiali o meglio la composizione di questo materiale è a layer, come i materiali di maxwell render.

Qui

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...