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.
Normalmapping mit OGRE und PureBasic
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Kannst du mal "data/normalmap.material" mit dem hier überschreiben: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.
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
}
}
}
}

Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- dllfreak2001
- Beiträge: 2925
- Registriert: 07.09.2004 23:44
- Wohnort: Bayern
-
- Beiträge: 6291
- Registriert: 29.08.2004 08:37
- Computerausstattung: Hoffentlich bald keine mehr
- Kontaktdaten:
Naja, nach demThalius hat geschrieben:ah fuck .. habs mir auch angesehen ... lag tatsächlich nur am depth-write .. gaah!
Wars ja kein Rätsel mehr.Wenn man genau hinschaut, sieht man das es unter den schwarzen Flecken vernünftig berechnet wird.

Ich erkenn in den Artefakten aber meistens Streifen und nicht solche Muster wie bei den gezeigten Screenshots

Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Plattformunabhängigkeit
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.
Ich wollte nur neu gewonnenes Wissen bezüglich des Themas teilen.