Seite 2 von 2
Verfasst: 01.07.2009 14:15
von dllfreak2001
Wenn man genau hinschaut, sieht man das es unter den schwarzen Flecken vernünftig berechnet wird.
Sieht irgendwie aus als ob da Variablen zu hohe Werte bzw. irgendeine komische Klamotte mit der Präzision.
Also, dieser "Fehler" ist auf allen Karten mit R300 / R350 rekonstruierbar und das auch unter verschiedenen Treiberversionen.
Verfasst: 01.07.2009 16:03
von DarkDragon
dllfreak2001 hat geschrieben:Wenn man genau hinschaut, sieht man das es unter den schwarzen Flecken vernünftig berechnet wird.
Sieht irgendwie aus als ob da Variablen zu hohe Werte bzw. irgendeine komische Klamotte mit der Präzision.
Also, dieser "Fehler" ist auf allen Karten mit R300 / R350 rekonstruierbar und das auch unter verschiedenen Treiberversionen.
Kannst du mal "data/normalmap.material" mit dem hier überschreiben:
Code: Alles auswählen
vertex_program normalVS/HLSL hlsl
{
source normalmap_vs.hlsl
entry_point main
target vs_1_1
default_params
{
param_named_auto worldViewProj worldviewproj_matrix
param_named_auto worldView worldview_matrix
param_named_auto view view_matrix
param_named_auto lightPosition light_position 0
}
}
fragment_program normalPS/HLSL hlsl
{
source normalmap_ps.hlsl
entry_point main
target ps_2_0
default_params
{
param_named_auto lightColorDiffuse light_diffuse_colour 0
param_named_auto lightColorSpecular light_specular_colour 0
param_named shininess float 127.0
}
}
vertex_program normalVS unified
{
delegate normalVS/HLSL
}
fragment_program normalPS unified
{
delegate normalPS/HLSL
}
material Normalmap
{
technique
{
// Draw it black
pass
{
depth_write off
lighting off
scene_blend zero zero
}
// For the lights
pass
{
depth_write off
iteration once_per_light
scene_blend add
lighting on
texture_unit
{
texture normalmap.png -1
}
vertex_program_ref normalVS
{
}
fragment_program_ref normalPS
{
}
}
// For the original textures
pass
{
depth_write on
scene_blend modulate
lighting off
texture_unit
{
texture texture.png -1
}
}
}
}
Vielleicht geht das jetzt.

Verfasst: 01.07.2009 16:55
von dllfreak2001

Jetzt läufts einwandfrei

Verfasst: 01.07.2009 18:15
von Thalius

ah fuck .. habs mir auch angesehen ... lag tatsächlich nur am depth-write .. gaah!
Verfasst: 01.07.2009 19:14
von DarkDragon
Thalius hat geschrieben:
ah fuck .. habs mir auch angesehen ... lag tatsächlich nur am depth-write .. gaah!
Naja, nach dem
Wenn man genau hinschaut, sieht man das es unter den schwarzen Flecken vernünftig berechnet wird.
Wars ja kein Rätsel mehr.
Ich erkenn in den Artefakten aber meistens Streifen und nicht solche Muster wie bei den gezeigten Screenshots

. Liegt vermutlich daran, dass sich die Streifenmuster der Passes überlagern und somit eher "grieselige" Rechtecke fehlen.
Plattformunabhängigkeit
Verfasst: 29.07.2011 08:48
von Vermilion
Gestern Abend habe ich festgestellt, dass man auf Mac OS X nichts außer einer glatten Kugel sieht. Dann bin ich darauf gekommen, das HLSL DirectX spezifisch ist und auf Mac OS X sowie Linux nur OpenGL verfügbar ist und OGRE auch mit dem OpenGL Rendersystem läuft. Dementsprechend sind für diese Betriebssysteme GLSL Programme nötig. Diese lassen sich aber nicht unter Windows benutzen. Das heißt, dass man letztendlich alle Materials bzw. Shader zwei mal erstellen muss, ein Mal für Windows als HLSL und ein Mal als GLSL für andere Betriebssysteme, die von PureBasic unterstützt werden.
Ich wollte nur neu gewonnenes Wissen bezüglich des Themas teilen.