Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Cartoon Shading

Iniciado por Lord Trancos, 01 de Enero de 1970, 01:00:00 AM

« anterior - próximo »

Lord Trancos

                                Estaba echandole un vistazo al nveffectsbrowser, y me ha molao el cartoon shading.... pero parece que no soporta texturas... :triste: pq he cargao un archivo X q tenia una unica textura pero no me la saca... :'(

¿Alguien sabe si es posible hacer cartoon shading con modelos con texturas? ¿Algun ejemplo? :sonriendo:

PD: He estado pensado al respecto, y me huelo que lo que quiero hacer es imposible o una estupidez,.. pero weno, por preguntar q no quede :loco:

[ Este Mensaje fue editado por: Lord Trancos el 2002-06-06 00:40 ]                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

KAKSTAR

                                Una pregunta, que és el Cartoon Shading ?

gracias
                               
akstar

Existen 10 tipos de personas, las que entienden binario y las que no.

Lord Trancos

                                Weno los de nVidia lo llaman Toon Shading, pero tambien lo he visto llamar Cell Shading

http://developer.nvidia.com/view.asp?IO=Toon_Shading

Consiste en renderizar un modelo con un sombreado como el de los dibujos animados
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Gunder

                                Bueno,
si te mola el cartoon shading del live! boxing, te puedo explicar como lo hice. Y si usas dos capas de textura, si podrias usar texturas, una para la iluminacion y otra para la textura. El Outline es lo mas facil de calcular.

Ale.
                               
riticar, critica hasta el mas tonto.

Lord Trancos

                                Jostras! muchas gracias. Pues no se como es el cartoon shading de ese juego, si me dices donde le puedo pegar un vistazo te podre decir si me gusta o no, pero lo mas seguro es que si me gustara :ojo:

Así q empiezo a preguntas. Lo haces en DX ? Necesita una tarjeta con soporte de pixel shaders ?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Tei

                               
Citar
El 2002-06-06 00:31, Lord Trancos escribió:
Estaba echandole un vistazo al nveffectsbrowser, y me ha molao el cartoon shading.... pero parece que no soporta texturas... :triste: pq he cargao un archivo X q tenia una unica textura pero no me la saca... :'(

¿Alguien sabe si es posible hacer cartoon shading con modelos con texturas? ¿Algun ejemplo? :sonriendo:

PD: He estado pensado al respecto, y me huelo que lo que quiero hacer es imposible o una estupidez,.. pero weno, por preguntar q no quede :loco:

[ Este Mensaje fue editado por: Lord Trancos el 2002-06-06 00:40 ]

Hola, recien he llegado a este foro y no entiendo de estos temas pero he visto tu mensaje. Por casa tenia un programa que toma un modelo .mdl y lo procesa duplicandolo pero a un tamaño mayor y con las normales invertidas, esto produce el efecto de outline remarcado caracteristicos de los cartons. Luego le ponias una skin especial, simplificado y ya tienes el efecto ese..
Si te interesara esto deberias mirar el proyecto de sourceforge Run-Rabit-Quake donde estaban las src de esta utilidad. Igual te sirve de algo.
Por cierto, ese programa que hablas supongo que vendra en algun sdk ¿donde lo has descargado?.
Y luego... ¿de que sirve conocer efectos que solo puedes aplicar en una tarjeta concreta?
1 saludo
Tei                                

Lord Trancos

                                Pues le echare un vistazo tb.

El SDK me lo he bajado de nvidia.com (vas a la seccion de "Developer" y despues busca por ahi).

En ningun momento he dicho que solo sirva para una tarjeta.

                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Gunder

                                Bueno, una respuesta rapida...

Lo dividimos en dos partes;

- Iluminacion, para calcularla se usa el algoritmo del environment maping, osea calcular la u y v de la texturas de ilumincaion para cada vertice segun su angulo con la luz. La textura debe ser un degradado de el color mas oscuro al color mas claro de arriba a la izquierda a abajo a la derecha, repectivamente.

- Outline, para calcular el outline yo use un sistema muy sencillo, miraba q caras enfrentaban la pantalla  y a la vez q las metia en el index buffer para pintar, las marcaba como posibles bordes, luego recorria las q no se pintaban y miraba si alguna de las aristas del poligono se compartian, si eras asi, añadia la arista a una lista de lineas a  pintar.

Ale.
                               
riticar, critica hasta el mas tonto.

Loover

                                Mirar que sistema de outline:
http://www.flipcode.com/articles/article_o...ctoutline.shtml

Es tan estúpidamente sencillo que parece mentira. Lo malo: que dibuja dos veces la malla. Preferiria otro método más rapido, como el que dice Gunder, pero bueno, echarle un vistazo.
Es para OpenGl.

[ Este Mensaje fue editado por: Loover el 2002-06-07 11:59 ]                                
IndieLib Libreria 2.5d utilizando aceleración por hardware para la programación de juegos 2d.
Indie Rover The monkeys are reading!

Ithaqua

                                Hay otro más estúpido todavía para el outline, pero es bastante más cutre.
Consiste en dibujar una segunda vez el objeto con el color constante del outline (negro por ejemplo), con el culling de caras invertido y con el test del zbuffer puesto a GL_LEQUAL (less or equal) en vez de GL_LESS.
Lo que hace es dibujar la parte trasera del objeto, que no pasa el test de z-buffer salvo en las aristas que forman el contorno (recordad, less or equal) y que por tanto se dibujan negras.

                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Lord Trancos

                                Gunder he intentado usar el metodo que me indicas para la iluminacion (he probado el outline que dice ithaqua, pero tal y como él indica es bastante cutre xD; aun tengo q probar el resto), pero todo el tema de las matematicas no lo controlo mucho y no se como hacerlo :triste:

Copiando de un ejemplo del SDK yo hacia en environment maping asi:



var _mat : TD3DXMatrix;

begin
 // ...

     with _mat do
       begin
         _11 := 0.25; _12 := 0.00; _13 := 0.00; _14 := 0.00;
         _21 := 0.00; _22 :=-0.25; _23 := 0.00; _24 := 0.00;
         _31 := 0.00; _32 := 0.00; _33 := 1.00; _34 := 0.00;
         _41 := 0.50; _42 := 0.50; _43 := 0.00; _44 := 1.00;
      end;

     D3DDEV8.SetTransform(D3DTS_TEXTURE0, _mat);
     D3DDEV8.SetTextureStageState(0, D3DTSS_TEXTURETRANSFORMFLAGS, D3DTTFF_COUNT2);
     D3DDEV8.SetTextureStageState(0, D3DTSS_TEXCOORDINDEX, D3DTSS_TCI_CAMERASPACEPOSITION);



He modificado ese codigo; probado a iniciar la matriz _mat con D3DXMatrixIdentity y despues modificandola con D3DXMatrixRotationYawPitchRoll pasandole para los valores Yaw Pitch Roll la direccion X Y y Z de la luz (es una luz direccional)

No se si lo que estoy haciendo se parece a lo que tengo que hacer o es una estupidez, pero el resultado es bastante psicodelico xDDDD y mola. Lastima que no sea lo que quiero hacer (cartoon shading)

¿Voy por buen camino? :loco: ¿o mas perdido que un pedo en un yakuzzi?

_________________
SaludoteZ de Lord Trancos!
www.dxlab.tk - programación de DirectX con Delphi.


[ Este Mensaje fue editado por: Lord Trancos el 2002-06-08 17:40 ]                                
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Zaelsius

                                Teneis un ejemplo de Cartoon Rendering en el MSDN que usa vertex shaders, con grosor de línea variable:

http://msdn.microsoft.com/code/default.asp...ompositedoc.xml

Y los fuentes en:

http://msdn.microsoft.com/library/en-us/dn...amples/Toon.exe

Está bastante bien explicado todo.


                               

Lord Trancos

                                Ok, gracias. Lo probare a ver que tal.
Por cierto, los vertex shaders son para modificar los vertices sin tener que bloquear el vertex buffer, ¿no? ¿o tienen alguna utilidad mas?
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.

Ithaqua

                                En este caso servirían para calcular la U y V de cada vértice por hardware.

                               
thaqua^Stravaganza
http://ithaqua.stravaganza.org

Lord Trancos

                                Ya lo se, me referia a su utilidad en general. De todos modos, el ejemplo en cuestion (no se pq) usa software processing...
                               
i>SaludoteZ de Lord Trancos!
http://www.dxlab.tk - http://dxlab.host.sk - programación de DirectX con Delphi.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.