Zurück   3DCenter Forum > Software-Hilfe Foren > Programmierung
Registrieren Hilfe Community Kalender Heutige Beiträge Suchen Uns unterstützen

Antwort
 
Themen-Optionen Ansicht
Alt 2002-12-05, 16:27:52   #1 (im Thread / einzeln)
Einfachkrank
Gold Member
 
Benutzerbild von Einfachkrank
 
Registriert: 2002-08-15
Beiträge: 626
Einfachkrank eine Nachricht über ICQ schicken Einfachkrank eine Nachricht über AIM schicken Einfachkrank eine Nachricht über MSN schicken
Arrow Code Optimierung

Hi,

mich würde mal interessieren, auf was die Profis der Programmierung bei ihren Programmen bzw. Spielen alles beachten. Wenn es geht, dann speziell zu C/C++ und zu deren Funktionen
Nutzt ihr viele Zeiger oder auch Pointer? Was ist besser, mehrere kurze Funktionen oder weniger längere? Sind globale Variablen sinnvoller im Gegensatz zu Zeigern? Was sollte man möglichst dynamisch programmierung und was statisch? Wo kann man besonders Speed sparen, da ich hauptsächlich mit OpenGL und C++ werke ?

EDIT: Ach, und wie sieht`s speziell mit der Aufteilung in Dateien, also ob DLL, oder nicht DLL, viele Header Dateien etc. ??? ?

MFG Einfachkrank

Über 5 Millionen Menschen hören HipHop. Schreib dich nicht ab! Lern Reden und Gehen :-D
www.michael-eberhardt.de

Geändert von Einfachkrank (2002-12-05 um 16:32:37 Uhr)
Einfachkrank ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-05, 17:44:55   #2 (im Thread / einzeln)
Exxtreme
Moderator & 3D-Guru
 
Benutzerbild von Exxtreme
 
Registriert: 2001-08-19
Ort: Baden-Württemberg
Beiträge: 48.049
Hehe, das ist eine gute Frage. Man sollte folgende Sachen beachten:

grössere Datenmengen ständig hin und her zu kopieren ist nicht so gut. Und man sollte Schleifen so coden, daß diese möglichst wenige Durchläufe brauchen.

Ansonsten kann man sich in den meisten Fällen auf den Compiler verlassen.

Edit: Sinn.

"Der Akt, durch den ein Individuum seiner Güter beraubt wird, heisst Raub, wenn ihn ein anderes Individuum begeht. Und soziale Gerechtigkeit, wenn eine ganze Gruppe plündert" - Nicolas Gomez Davila
"Die perfekte Gleichheit liegt nur im Tod. Deshalb ist der Genozid die Lieblingsbeschäftigung der Gleichmacher." - Roland Baader
"Es ist egal, ob die Wissenschaft der globalen Erwärmung komplett an den Haaren herbeigezogen ist, gibt uns der Klimawandel doch die größte Möglichkeit Gerechtigkeit und Gleichheit in die Welt zu tragen." Christine Stewart
"Nimm das Recht weg – was ist dann ein Staat noch anderes als eine große Räuberbande" - Heiliger Augustinus
"Socialists cry "Power to the people", and raise the clenched fist as they say it. We all know what they really mean—power over people, power to the State." - Margaret Thatcher
Ich ziehe es vor, meine Kenntnisse aus den autorisierten Informationen unserer Regierung zu beziehen. - Klima"wissenschaft" in Action

Geändert von Exxtreme (2002-12-05 um 17:46:36 Uhr)
Exxtreme ist offline Computer-Informationen von Exxtreme anzeigen   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-05, 20:16:09   #3 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
In erster Linie versuche ich mal so zu programmieren das ich den Code auch noch 1 Jahr später verstehe. Optimiert wird dann an den Flaschenhälsen.

Aber wie Exxtreme schon sagte erzuegen die Compiler inzwischen recht guten Code aber wenn man den falschen Ansatz zur Lösung eines Problems benutzt kann der Compiler auch nichts mehr retten.

Wenn du jetzt noch die Grafikkarte ins spiel bringst gelten wieder ganz andere Regeln. Aber dazu gibt es zum Beispiel bei NVIDIA eine ganze menge gute Dokumente.

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-06, 16:43:51   #4 (im Thread / einzeln)
Einfachkrank
Gold Member
Threadstarter
 
Benutzerbild von Einfachkrank
 
Registriert: 2002-08-15
Beiträge: 626
Einfachkrank eine Nachricht über ICQ schicken Einfachkrank eine Nachricht über AIM schicken Einfachkrank eine Nachricht über MSN schicken
Meine GraKa

Zitat:
Originally posted by Demirug
Wenn du jetzt noch die Grafikkarte ins spiel bringst gelten wieder ganz andere Regeln. Aber dazu gibt es zum Beispiel bei NVIDIA eine ganze menge gute Dokumente.
Also ich hab zurzeit ne Voodoo5 5500 AGP mit 64MB. Aber macht das im privaten Programmiererbereich solche Unterschiede, zwischen ner Voodoo und ner Geforce ???

Über 5 Millionen Menschen hören HipHop. Schreib dich nicht ab! Lern Reden und Gehen :-D
www.michael-eberhardt.de
Einfachkrank ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-06, 17:01:41   #5 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
Re: Meine GraKa

Zitat:
Originally posted by Einfachkrank


Also ich hab zurzeit ne Voodoo5 5500 AGP mit 64MB. Aber macht das im privaten Programmiererbereich solche Unterschiede, zwischen ner Voodoo und ner Geforce ???
Ja das macht einen Unterschied. Bei der Voodoo must du dir um viel weniger Sache sorgen machen.

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-06, 18:13:50   #6 (im Thread / einzeln)
zeckensack
Grandmaster Member
 
Benutzerbild von zeckensack
 
Registriert: 2002-03-10
Beiträge: 12.026
Zitat:
Originally posted by Exxtreme
Und man sollte Schleifen so coden, daß diese möglichst wenige Durchläufe brauchen.
Öööhm

Eigentlich nicht. Kurze Schleifen, die nur ein, zweimal durchlaufen werden haben einen prozenutal viel zu hohen Overhead für die Schleifenlogik. Daher sind oft wiederholte Schleifen besser (es sei denn natürlich sie machen unnützen Kram, aber dann ist's eh egal ob oft oder nicht).

Auch zu kleine Schleifenkörper haben dieses Problem, das löst man durch sogenanntes 'loop unrolling'. Dh daß man pro Durchlauf der Schleife mehrere logische Durchläufe ausführt. Wobei man dann wieder beachten muß, daß wenn man innerhalb der Schleife zB vier logische Iterationen ausführt, man die übriggebliebenen Iterationen zusätzlich außerhalb der Hauptschleife ausführen muß.
*edit* Man kann halt nicht jede mögliche Anzahl an Schleifeniterationen glatt durch vier teilen.

Clevere Compiler sollten eigentlich in der Lage sein das loop unrolling selbst zu erledigen.

AMD gibt als vernünftigen Wert für Schleifenkörper ca 100 Maschineninstruktionen an. Größer ist tendenziell besser, verschwendet aber Platz im Code-Cache.

Bei Streaming-Geschichten soll man pro Iteration 64Bytes an Daten verarbeiten, aber das lohnt nur zu wissen, wenn man Prefetch-Instruktionen (ergo Assembler) einfügt, außerdem ist das schwer Athlon-spezifisch.


Geändert von zeckensack (2002-12-06 um 18:15:48 Uhr)
zeckensack ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-07, 20:20:43   #7 (im Thread / einzeln)
Einfachkrank
Gold Member
Threadstarter
 
Benutzerbild von Einfachkrank
 
Registriert: 2002-08-15
Beiträge: 626
Einfachkrank eine Nachricht über ICQ schicken Einfachkrank eine Nachricht über AIM schicken Einfachkrank eine Nachricht über MSN schicken
Schlüsselwörter in C++ im Detail

Hi,

kann mir jemand mal die folgenden Schlüsselwörter wirklich im Detail erklären:
1. Virtual
2. Union
3. Inline
4. Const
5. Void
6. Operator
7. und wenns geht, dann die wichtigsten von diesen #ifndef - Dingern.

Ich möchte diese Schlüsselwörter mal wirklich im Detail kennen und deren sinnvollste Anwendung. Besonders weiß ich nichts über virtual

MFG Einfachkrank

Über 5 Millionen Menschen hören HipHop. Schreib dich nicht ab! Lern Reden und Gehen :-D
www.michael-eberhardt.de
Einfachkrank ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-07, 20:55:47   #8 (im Thread / einzeln)
GloomY
CPU-Guru
 
Benutzerbild von GloomY
 
Registriert: 2001-12-15
Beiträge: 5.043
Re: Schlüsselwörter in C++ im Detail

Zitat:
Originally posted by Demirug
In erster Linie versuche ich mal so zu programmieren das ich den Code auch noch 1 Jahr später verstehe. Optimiert wird dann an den Flaschenhälsen.

Aber wie Exxtreme schon sagte erzuegen die Compiler inzwischen recht guten Code aber wenn man den falschen Ansatz zur Lösung eines Problems benutzt kann der Compiler auch nichts mehr retten.
Seh' ich auch so. Also an sich braucht man gute Algorithmen, sonst nützt die ganze Optimiererei nichts.

Ich habe ein paar frühe Programmiererfahrungen mit einem Primzahlenprogramm gemacht. Der erste Ansatz war reines Brute Force und es lief furchtbar langsam (war übrigends ein 8086er, deshalb sowieso elends lahm). Nach und nach habe ich das Programm immer weiter optimiert und dabei einen riesen Aufwand betrieben.

Also ich es dann später mit dem "Sieb des Eratosteles" (eigentlich ganz billiger Algorithmus) verglichen habe, war mein optimiertes Programm aber immer noch langsamer

Also merken: Die richtigen Algorithmen sind gaaaaanz wichtig!
Zitat:
Originally posted by Einfachkrank
Hi,

kann mir jemand mal die folgenden Schlüsselwörter wirklich im Detail erklären:
1. Virtual
2. Union
3. Inline
4. Const
5. Void
6. Operator
7. und wenns geht, dann die wichtigsten von diesen #ifndef - Dingern.

Ich möchte diese Schlüsselwörter mal wirklich im Detail kennen und deren sinnvollste Anwendung. Besonders weiß ich nichts über virtual

MFG Einfachkrank
zu 2.) Ein Union ist praktisch ein struct, welches aber nicht alle Variablen beinhaltet, sondern genau nur eine davon.

Bsp:
Code:
union test_typ {
  char c;
  int i;
  double x;
} test;

test.i = 10;
// mach' irgendwas
test.x = 3.14;
// jetzt ist test.i nicht mehr verfügbar
Die Speicherung für die einzelnen Variablen findet an genau der selben Adresse statt, daher ist test.i nicht mehr verfügbar, wenn test.x zugewiesen wurde.
Die Größe der Union ist die Größe des größten Elements (hier: double, also wahrscheinlich 8 Bytes)

Die anderen Sachen kann jemand anders sicher besser als ich erklären...

void
GloomY ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-07, 21:09:45   #9 (im Thread / einzeln)
Xmas
3D-Guru
 
Benutzerbild von Xmas
 
Registriert: 2001-08-08
Beiträge: 10.068
Die meisten findest du hier: http://msdn.microsoft.com/library/de...asp?frame=true

Union ist eine struct, bei der sämtliche Member an derselben Adresse anfangen. Das ist sinnvoll, wenn man von einer Gruppe von Variablen immer nur eine braucht, oder z.B. auf die einzelnen Bytes eines Integer direkt zugreifen will.

Was für "#ifndef Dinger"?
Xmas ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-07, 21:13:03   #10 (im Thread / einzeln)
zeckensack
Grandmaster Member
 
Benutzerbild von zeckensack
 
Registriert: 2002-03-10
Beiträge: 12.026
Re: Schlüsselwörter in C++ im Detail

Ich hol mir mal die Rosinen :)
Zitat:
Originally posted by Einfachkrank
1. Virtual
2. Union
3. Inline
4. Const
5. Void
6. Operator
7. und wenns geht, dann die wichtigsten von diesen #ifndef - Dingern.
3. als inline deklarierte Funktionen werden nicht aufgerufen, sondern direkt vor Ort in den Code eingefügt. Das lohnt bei sehr kleinen Funktionen, bei denen der Overhead für die Parameterübergabe oft größer ist, als der eigentliche Funktionscode.

4. const ist ein 'Versprechen' des Programms an den Compiler, die so deklarierte Variable nicht zu verändern. Das erlaubt
a)aggressivere Optimierung des Compilers
b)eigene Fehler zu vermeiden
Bsp:
Code:
const double pi=3.141...;   //wieso sollte ich das je wieder ändern wollen?

<...>

void funkschn(const int cheese)
{
   if (cheese=3)     //hamwer uns vertippt, woll? sollte wahrscheinlich cheese==3 heißen
   {
     rhabarber();
   }
}
5. Funktionen in C/C++ müssen einen Rückgabetyp haben. Wenn sie nichts zurückgeben, dann muß man auch das deklarieren. In diesem Fall als void. void ist garnichts und belegt keinen Speicher (englisch void->(die) Leere). Würde man das weglassen, könnte der Compiler eine Deklaration nicht von einem Funktionsaufruf unterscheiden.

6. operator + zB. 'Eingebaute' Operatoren wie eben +, -, +=, *= und andere können überladen werden, damit man so lustige Sachen wie
Code:
vector3 a,b,c;
a=b+c;
machen kann, anstatt jedesmal
Code:
a.x=b.x+c.x;
a.y=b.y+c.y;
a.z=b.z+c.z;
schreiben zu müssen.


Geändert von zeckensack (2002-12-07 um 21:13:29 Uhr)
zeckensack ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-08, 17:07:57   #11 (im Thread / einzeln)
MeLLe
Platinum Member
 
Benutzerbild von MeLLe
 
Registriert: 2002-08-10
Beiträge: 1.246
MeLLe eine Nachricht über ICQ schicken
zu 1)
Nach meinem Verständnis müssen (sollten?) als virtual ausgewiesene Methoden einer Basisklasse beim Ableiten eigener Klassen aus dieser Basisklasse eigens implementiert werden.
Damit soll AFAIK sichergestellt werden, dass immer die zur Klasse passende Methode (v.a. beim Aufruf über Zeiger) gefunden wird. Würde man virtual weglassen, würde der Compiler beim Aufruf einer Methode einer abgeleiteten Klasse über einen Zeiger vom Typ der Basisklasse die Methode der Basisklasse aufrufen. Und dass kann Probleme machen.
Beispiel gefällig?
Code:
class cFahrzeug
{
    public:
        virtual void Fahren() { BewegDich(); }
    [...]
}

[...]

class cAuto : public cFahrzeug
{
    public:
        virtual void Fahren() { DrehDieRäder(); }
}

class cSchiff : public cFahrzeug
{
    public:
        virtual void Fahren() { SetzDieSegel(); }
}

[...]

void main(void]
{
    cAuto     passat;
    cSchiff   einmaster;
    cFahrzeug *vehikel = new cFahrzeug;

    vehikel->Fahren();    // ruft cFahrzeug::Fahren() auf
    passat.Fahren();      // ruft cAuto::Fahren() auf
    einmaster.Fahren();   // ruft cSchiff::Fahren() auf

    vehikel = &passat;
    vehikel->Fahren();    // ruft cAuto:Fahren() auf
                          // hätten wir oben in der ClassDef die 
                          // virtual-Angaben weggelassen, wäre hier
                          // jetzt cFahrzeug:Fahren() aufgerufen worden
                          
    vehikel = &einmaster;
    vehikel->Fahren();    // ruft cSchiff:Fahren() auf
                    // hätten wir oben in der ClassDef die 
                          // virtual-Angaben weggelassen, wäre hier
                          // jetzt cFahrzeug:Fahren() aufgerufen worden
}
hth

Edit: Verdammtes Inline-Methoden-Implementiering

M e L L e

* PvD * SvD * JOB * T *SvR * GaD * KaA * A *JOC * FaP * AaB *

Geändert von MeLLe (2002-12-08 um 17:08:53 Uhr)
MeLLe ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 17:00:37   #12 (im Thread / einzeln)
Einfachkrank
Gold Member
Threadstarter
 
Benutzerbild von Einfachkrank
 
Registriert: 2002-08-15
Beiträge: 626
Einfachkrank eine Nachricht über ICQ schicken Einfachkrank eine Nachricht über AIM schicken Einfachkrank eine Nachricht über MSN schicken
Talking Noch was

Hi,

mir ist gerade noch was eingefallen -> Wo ist der Unterschied zwischen
Code:
Varialbe++ // bzw. Varialbe--
und
Code:
++Variable // bzw. --Variable
?

Über 5 Millionen Menschen hören HipHop. Schreib dich nicht ab! Lern Reden und Gehen :-D
www.michael-eberhardt.de
Einfachkrank ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 17:24:09   #13 (im Thread / einzeln)
Pitchfork
Senior Member
 
Registriert: 2002-04-29
Beiträge: 136
Rein technisch ist der Unterschied, daß

Var ++

zu einem erhöhen des Wertes nach der Auswertung des gesamten Ausdrucks führt, während

++ Var

zu einem erhöhen des Wertes vor Beginn des Ausdrucks führt.

Beispiel:

int i = 5;
print(i ++); ===> Ausgabe: 5

int j = 5;
print(++ j); ===> Ausgabe: 6


Wenn nun der inkrement nicht in einem Ausdruck verwendet wird, sondern alleine in der Gegend rumsteht, gilt folgendes zu beachten:

- bei einfachern Integern und so gibt es keinen Unterschied.
- bei Klassen mit überladenem Increment Operator (operator ++) ist die Version mit dem ++ vor der Var deutlich schneller, da dort keine temp. Kopie erzeugt werden muß.
Pitchfork ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 18:39:28   #14 (im Thread / einzeln)
Nasenbaer
Avantgarde Member
 
Registriert: 2001-10-23
Beiträge: 5.411
7.) http://www.forum-3dcenter.net/vbulle...threadid=36241

Da wird alles erklärt.

Mfg Nasenbaer
Nasenbaer ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 21:33:26   #15 (im Thread / einzeln)
Einfachkrank
Gold Member
Threadstarter
 
Benutzerbild von Einfachkrank
 
Registriert: 2002-08-15
Beiträge: 626
Einfachkrank eine Nachricht über ICQ schicken Einfachkrank eine Nachricht über AIM schicken Einfachkrank eine Nachricht über MSN schicken
Talking Nochmal zur Sicherheit

Hi,

ich hab noch mal ne kleine Frage zu den #ifdef Befehlen. Das sind ja quasi Anweisungen an den Präprozessor oder so ähnlich, der dann weiß ob dieser Teil des Codes mit compiled werden soll oder nicht, je nach dem ob das Ding definiert ist oder nicht. So weit richtig?

Jetzt meine Frage, falls das so weit stimmt -> Wie kann ich im Code Sachen definieren, die abhängig sind von der Programmeinstellung. Beispiel: In nem Game soll die eine Option zur Verfügung stehen, mit der man Schatteneffekte ein und ausschalten kann. Jetzt möchte ich, falls sie ausgeschaltet sind, einen State nicht definieren, der dann die Codeteil auslässt, welche für die Projektion von Schatten zuständig wären.(und anders herum solls natürlich auch funzen )

Ich hoffe das war klar und deutlich

MFG Einfachkrank

Über 5 Millionen Menschen hören HipHop. Schreib dich nicht ab! Lern Reden und Gehen :-D
www.michael-eberhardt.de
Einfachkrank ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 21:47:42   #16 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
Mit "if else" Anweisungen zum Beispiel.

Also in etwas so:

Code:

void Render ()
{
  if (SchattenActiv)
  {
    Code der nur bei Aktiven Schatten ausgeführt werden soll
  }
  else
  {
    Code der nur bei Inaktiven Schatten ausgeführt werden soll
  }

  Code der auf jeden Fall ausgeführt werden soll.
}
Das ist der klassiche C Ansatz.

Es gibt auch noch eine C++ Lösung die mit virtuellen Methoden arbeitet. Diese hat den Vorteil das man damit die ifs eliminieren kann. Allerdings ist sowas nur für jemanden zu empfehlen der sich gut mit OOP auskennt. Wenn du willst kann ich ein auch dafür ein Code Beispiel posten.

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 22:26:42   #17 (im Thread / einzeln)
Nasenbaer
Avantgarde Member
 
Registriert: 2001-10-23
Beiträge: 5.411
JA mach mal bitte.
Auch wenns mich warscheinlich anfangs überfordert. Aber perfekte OOP ist schon mein Ziel.

Mfg Nasenbaer
Nasenbaer ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-09, 22:46:59   #18 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
So bitte:

Code:
class ShadowSetup
{
  public:
    virtual void SetShadows () = 0;
};

class ActiveShadowSetup : public ShadowSetup
{
  public:
    virtual void SetShadows ()
    {
      // Schatten Code
    }
}

class InactiveShadowSetup : public ShadowSetup
{
  public:
    virtual void SetShadows ()
    {
      // Keine Schatten Code
    }
}

class Render
{
  public:
    Render ()
      : m_ShadowSetup (NULL)
    {
      SetShadows (true);
    }

    void SetShadows (bool active)
    {
      delete m_ShadowSetup;

      if (active)
        m_ShadowSetup = new ActiveShadowSetup ();
      else
        m_ShadowSetup = new InactiveShadowSetup ();
    }

    void Render ()
    {
      m_ShadowSetup->SetShadows ();

      // Weitere Code
    }

  protected:
    ShadowSetup* m_ShadowSetup;
}

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-10, 00:01:01   #19 (im Thread / einzeln)
Nasenbaer
Avantgarde Member
 
Registriert: 2001-10-23
Beiträge: 5.411
Also im groben hab ichs verstanden aber ein paar Fragen hab ich noch. :-)

Ich muss doch nun trotzdem noch ne if-Anweisung reinnehmen um
Render.SetShadows(false) auszuführen, wenn ichs nich haben will oder hab ich da was falsch verstanden?

Vielleicht kannst du ja mal erklären wie man mit diesen Code anschließend umgeht.

Mfg Nasenbaer
Nasenbaer ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Alt 2002-12-10, 07:44:55   #20 (im Thread / einzeln)
Demirug
3DCenter Crew & 3D-Guru
 
Benutzerbild von Demirug
 
Registriert: 2002-05-14
Beiträge: 22.430
Demirug eine Nachricht über MSN schicken
In deinem Renderloop wird immer nur Render.Render () aufgerufen. Die Render.SetShadows () Methode wird nur dann aufgerufen wenn man über das Menü oder die Konsole die einstellung für die Schatten ändert. Der Vorteil dabei ist das man im normalen Renderloop die if Anweisungen so beseitigen kann (nicht alle) und if Anweisungen bzw jede Art von bedingten Sprüngen mögen moderne CPUs nicht so sehr.

Demirug ist offline   Mit Zitat antworten Beitrag zum Zitieren auswählen
Antwort

Lesezeichen
  • Dieses Thema bei Twitter speichern
  • Dieses Thema bei Facebook speichern


Forumregeln
Es ist Ihnen erlaubt, neue Themen zu verfassen.
Es ist Ihnen erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:57:44 Uhr.


Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.