Autor Wątek: Havok z Ogre3D  (Przeczytany 4695 razy)

Offline krzysiek9394

  • Użytkownik

# Listopad 23, 2008, 22:00:13
Witam, czy jest możliwość użycia Havok Physics z Ogre3D. Czy do tego wymagany jest jakiś wrapper, a jeśli tak to jaki?

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Krzysiek K.

  • Redaktor
    • DevKK.net

# Listopad 23, 2008, 22:31:10
Cytuj
Witam, czy jest możliwość użycia Havok Physics z Ogre3D.
Skoro jest możliwość użycia innych silników fizycznych, to powinno się dać i zrobić to samo z Havokiem. :)

Cytuj
Czy do tego wymagany jest jakiś wrapper, a jeśli tak to jaki?
Najprawdopodobniej tak, ale to już musisz raczej zam poszukać. Nawet jeżeli nie ma takowego, zawsze można napisać go samemu. :)

Offline krzysiek9394

  • Użytkownik

# Listopad 23, 2008, 22:56:34
ech... a żeby nie robić nowego tematu który silnik najlepszy do przygodówki? Havok, PhysX, ODE, Bullet czy Newton? Chodzi mi też o istnienie wrapperów do Ogre3D :>

Offline Khaine

  • Użytkownik

# Listopad 24, 2008, 00:32:09
a havok jest dostepny za darmo? Jesli tak to havok. Physix wymaga sterownikow, ale jest juz wrapper do ogra, newton ma kiepska dokumentacje.

Offline krzysiek9394

  • Użytkownik

# Listopad 24, 2008, 22:11:59
a i jeszcze jedno pytanie : czy pliki resources.cfg i plugins.cfg da sie wstawić w kod zamiast obok pliku exe (nie chce żeby kto inny modyfikował te pliki)

Offline Erdraug

  • Użytkownik

# Listopad 24, 2008, 22:34:39
a i jeszcze jedno pytanie : czy pliki resources.cfg i plugins.cfg da sie wstawić w kod zamiast obok pliku exe (nie chce żeby kto inny modyfikował te pliki)

Oczywiście że sie da. Resources musisz wczytywać za pomocą metody addResourceLocation(...) z klasy ResourceGroupManager, a potem inicjalizować i używać normalnie. A dla pluginow to można je ładować za pomocą loadPlugin(...) z klasy Root. Tylko przy manualnym ładowaniu pluginow trzeba pamiętać o tym żeby nie pomieszać wersji debug i release.

Offline głos

  • Użytkownik

# Listopad 25, 2008, 14:39:46
a havok jest dostepny za darmo? Jesli tak to havok. Physix wymaga sterownikow, ale jest juz wrapper do ogra, newton ma kiepska dokumentacje.

PhysX a nie Physix :)
PhysiX też istnieje więc proszę nie mylić z PhysX
co ciekawe nazwa PhysiX była wcześniej od PhysX
więc to ta druga jest podobna.

Offline krzysiek9394

  • Użytkownik

# Listopad 25, 2008, 18:54:40
kolejne pytanie XD czy przy zmianie rozdzielczości obrazu w Ogre3D wymagane są inne tekstury (wymiarowo). np. 640x480 wymaga tekstur takich wymiarów a 800x600 innych . jak to jest?

Offline mosowski

  • Użytkownik

# Listopad 25, 2008, 19:22:13
Cytuj
kolejne pytanie XD czy przy zmianie rozdzielczości obrazu w Ogre3D wymagane są inne tekstury (wymiarowo). np. 640x480 wymaga tekstur takich wymiarów a 800x600 innych . jak to jest?
Nie trzeba zmieniać rozdzielczości textur przy zmianie rozdzielczości. Jak robisz np. menu główne, to dobrze żeby textura menu była zrobiona pod najwyższą dostępną rozdzielczość, lecz napisy muszą być czytelne także po przeskalowaniu w dół do najniższej - ale to jest kwestia czysto graficzna, nie ma nic wspólnego z Ogre.

Offline radsun

  • Użytkownik
    • CaRpg

# Listopad 26, 2008, 09:09:23
kolejne pytanie XD czy przy zmianie rozdzielczości obrazu w Ogre3D wymagane są inne tekstury (wymiarowo). np. 640x480 wymaga tekstur takich wymiarów a 800x600 innych . jak to jest?
A jak zmieniasz rozdzielczość pulpitu to co się dzieję z teksturą?  :P

Offline krzysiek9394

  • Użytkownik

# Grudzień 05, 2008, 18:47:48
a czy jest możliwość żeby można było wybierac directx 9 lub 10 w grze? oczywiście bez pisania drugiej gry pod Directx 10 :D

Offline Charibo

  • Redaktor

# Grudzień 05, 2008, 23:36:36
Nie. :)

Offline krzysiek9394

  • Użytkownik

# Styczeń 02, 2009, 21:02:32
a jest możliwość użycia Ogre z FMOD Ex? Odtwarzanie muzyki w tle itp. Jak odtworzyc muzyke w okienku konsolowym wiem ale jak to zrobić z Ogre nie mam pojęcia ;D

Offline counterClockWise

  • Użytkownik

# Styczeń 02, 2009, 21:05:38
a jest możliwość użycia Ogre z FMOD Ex? Odtwarzanie muzyki w tle itp. Jak odtworzyc muzyke w okienku konsolowym wiem ale jak to zrobić z Ogre nie mam pojęcia ;D

Tak samo. Ja używałem OpenAL z Ogrem, ale nie widzę najmniejszych przeciwwskazań, żeby użyć tego samego kodu co w okienku konsolowym w ogrze.

Offline krzysiek9394

  • Użytkownik

# Styczeń 02, 2009, 21:32:11
ale nie mam pojęcia gdzie mam wstawić kod odpowiedzialny za stworzenie dźwięku i odtworzenie go. mam taki kod:
#include "Ogre.h"     /* Wszystkie nagłówki OGRE */
#include "ExampleApplication.h"
#include <windows.h>  /* Umożliwia wypisywanie błędów */
#include <fmod.hpp> /* Umożliwia odtwarzanie dźwięku */
#include <fmod_errors.h> /* Umożliwia wypisywanie błędów Fmoda */

/* Uruchamiamy silnik dźwięku Fmod Ex */
void ERRCHECK(FMOD_RESULT result)
{
    if (result != FMOD_OK)
    {
        printf("FMOD error! (%d) %s\n", result, FMOD_ErrorString(result));
        exit(-1);
    }
}


int main(int argc, char *argv[])
{
    FMOD::System     *system;
    FMOD::Sound      *sound1, *sound2, *sound3;
    FMOD::Channel    *channel = 0;
    FMOD_RESULT       result;
    int               key;
    unsigned int      version;

result = FMOD::System_Create(&system);
    ERRCHECK(result);


    result = system->getVersion(&version);
    ERRCHECK(result);

result = system->init(32, FMOD_INIT_NORMAL, 0);
    ERRCHECK(result);
}




// Dziedziczymy ExampleApplication
class MyApp : public ExampleApplication
{
  protected:
  public:
    MyApp()
    {
    }

    ~MyApp()
    {
    }
  protected:
    /** createScene jest funkcją czysto wirtualną w ExampleApplication,
     *  nadpisujemy ją, aby nic nie robiła.
     *  Na początku tworzy ona pustą scenę.
     **/
    void createScene(void)
    {
    }
};


 
INT WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,INT)
{
   MyApp App;     // Tworzymy instancję naszej klasy
   try
   {
     App.go();       // ExampleApplication dostarcza metodę go, która rozpoczyna rendering
     return 0;   // Zwraca 0 w przypadku powodzenia
   }
   catch (Ogre::Exception& e)  // Przechwytuje wyjątki (błędy)
   {
     MessageBox( NULL, e.getFullDescription().c_str(), "Wyjątek!",
           MB_OK | MB_ICONERROR | MB_TASKMODAL);
     return 1;   // Zwrócenie liczby różnej od zera oznacza niepowodzenie
   }
}