Seite 1 von 1
Thema: Cel-Shading
Verfasst: 11.07.2006 10:59
von Lebostein
Hi,
einfach ins Blaue hinein gefragt: ist so etwas in Verbindung mit OGRE und PureBasic möglich?
http://de.wikipedia.org/wiki/Cel_Shading
Verfasst: 11.07.2006 11:34
von DarkDragon
Ja es ist mit OGRE in Verbindung mit PB möglich, soviel ich weiß(Shader halt).
Verfasst: 17.07.2006 20:51
von dllfreak2001
Es gibt einen Trick wie du einen CellShading-Effekt für ein Mesh machst, ohne irgenwelche Shader zu nutzen(Sieht aber nicht ganz so toll aus).
Also du nimmst ein Modell und dann kopierst das jetzige Modell und packst es auch an die gleiche Stelle wie das Original.
Die Kopie skallierst du jetzt nun ein wenig größer(je mehr desto dicker werden die Zeichenlinien). Die Außenflächen der Kopie werden nun unsichtbar gemacht, stattdessen machst du die Innenflächsen des Modells/Mesh Schwarz.
Fertig ist der CellShading-Effekt!
Sieht teilweise echt beeindruckend kommt jedoch an das echte Cellshading nicht ganz heran. Allerdings ist diese Technik auch in allen
Engines nutzbar, so auch OGRE-PB.
Re: Thema: Cel-Shading
Verfasst: 26.01.2010 14:55
von Rings
Gibts hier zu diesem Thema evtl. was neues,
hat das einmal jemand mit Purebasic hinbekommen ?
Re: Thema: Cel-Shading
Verfasst: 27.01.2010 00:21
von xperience2003
hier ein standart celshader
http://www.digitalarts-egypt.com/hohohoo/TLib-Toon3.exe
hier is mein verbesserter celshader in action
(im 2. part kann man mit space abbrechen!)
http://www.digitalarts-egypt.com/hohohoo/TehToon.exe
und hier die progs ^^
vertex-programm
Code: Alles auswählen
// TLib Toonshader by jhd^daWn
varying vec3 lightDir,normal;
void main()
{
lightDir = normalize(vec3(gl_LightSource[0].position));
normal = gl_NormalMatrix * gl_Normal;
gl_Position = ftransform();
}
fragment-programm
Code: Alles auswählen
// TLib Toonshader by jhd^daWn
varying vec3 lightDir,normal;
void main()
{
float intensity;
vec4 color;
// normalizing the lights position to be on the safe side
vec3 l = normalize(vec3(gl_LightSource[0].position));
vec3 n = normalize(normal);
intensity = dot(l,n);
if (intensity > 0.95)
color = vec4(1.0,0.5,0.5,1.0);
else if (intensity > 0.5)
color = vec4(0.6,0.3,0.3,1.0);
else if (intensity > 0.25)
color = vec4(0.4,0.2,0.2,1.0);
else
color = vec4(0.2,0.1,0.1,1.0);
gl_FragColor = color;
}
weiss nich was pb-ogre fuer shader schluckt, aber man kann konverten etc
Have Fun

Re: Thema: Cel-Shading
Verfasst: 27.01.2010 07:10
von DarkDragon
Hallo,
xperience2003 hat geschrieben:weiss nich was pb-ogre fuer shader schluckt
Alle eigentlich. Aber PB OGRE ist unter Windows nur durch DirectX implementiert und unter Linux durch OpenGL, desshalb braucht man unter Windows HLSL/cG/ASM und unter Linux GLSL/cG/ASM
Re: Thema: Cel-Shading
Verfasst: 27.01.2010 11:55
von Rings