AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Prism Texturierung ohne OpenGl/DirectX
Thema durchsuchen
Ansicht
Themen-Optionen

Texturierung ohne OpenGl/DirectX

Ein Thema von simlei · begonnen am 14. Mär 2006 · letzter Beitrag vom 14. Mär 2006
 
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#6

Re: Texturierung ohne OpenGl/DirectX

  Alt 14. Mär 2006, 18:07
Zitat von simlei:
Unter MSDN hab ich ehrlich gesagt nicht viel sinnvolles gefunden... ( )
Sry, ich hab da mit der Genauigkeit wohl etwas gegeizt Was ich meinte war der beschriebene Ablauf, der Durchlaufen wird, wenn man ein Dreieck texturiert und gedreht darstellen will. Der is in den DirectX-Docus zu finden, wenn man nach Fixed Function Pipeline oder Rendering Pipeline sucht.
Ich glaube nicht, dass das .NET-Framework hier von sich aus Funktionen zum Texturieren von gedrehten Polygonen mitsich bringt. Deswegen: du hast n bisschen Arbeit vor dir.
Ich versuch mal etwas genauer zu erklären, was ich mit "Arbeit" meine:
Du hast bspw. ein Dreieck. Das simpelste (und afaik einzigste) geometrische Gebilde, mit dem man jegliche gemoetrische Form zusammensetzen kann.
Dieses Dreieck hat 3 Koordinaten. Diese entsprechen den 3 Eckpunkten, wo sie sich im 3Dimensionalen Raum befinden. Nun rechnest du diese Koordinaten in Abhängigkeit der Rotation des 3Ecks in 2D-Koordinaten um, damit du sie auf dem Bildschirm darstellen kannst. Das hast du ja schon geschafft
Jetzt kommt der Teil, der dir Schwierigkeiten Macht. Die Farbe von jedem Pixel, das sich innerhalb des 3Ecks befindet, muss nun berechnet werden. D.h. du musst erstmal rausfinden: Welche Pixel befinden sich innerhalb des 3ecks, und welche tun das nicht? Das wird wohl in einer Schleife geschehen müssen, in der du Pixel für Pixel abfragst. Performance-Schub wär dann zu erreichen, wenn du die zu überprüfenden Pixels optimierst, und bspw. nur von der "linkesten" Ecke des Dreiecks bis zur Ecke ganz rechts überprüfst, und nicht alle Pixel der Zeichenfläche. Wahrscheinlich gibts dafür noch ne performantere Möglichkeit, wüsste jetzt aber nicht, welche.
So, für jedes Pixel, das sich im 3eck befindet musst du rausfinden, an welcher Position im 3Eck es sich befindet. Anhand dieser Position kannst du dann ausrechnen, welcher Teil der Textur jetzt da gezeichnet werden muss. Um das rauszukriegen, brauchst du aber noch eins: Texturkoordinaten. Du musst logisch wissen, welche Ecke der Textur an welches Eck des Dreiecks kommt. Anhand der damit nun errechneten Position nimmst du das Bitmap und holst dir die Farbe an dieser Position. Damit weißt du dann, welche Farbe das Pixel hat und kannst es zeichnen.
Wie du siehst, es ist nicht gerade einfach, und absolut nicht performant. Aber ich hoffe trotzdem, dass dus hinkriegst, bin auf dein Ergebnis gespannt

greetz
Mike
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:25 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz