Autor Wątek: Newton SDK  (Przeczytany 5905 razy)

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 17:12:49
Wie ktoś gdzie gdzie można znaleźć starszą wersję Newtona? nie działa mi ten tutorial: http://irrlicht.sourceforge.net/tut_newton.html  i potrzebuję wersji starszej niż 1.53 :/

A jeśli nie ma: to jak użyć Newtona 1.53 w Irrlichcie 1.3 ?

Szukam już od kilku dni ale działa mi tylko taki prosty przykład:

#include <Irrlicht.h>
#include "newton.h"

static NewtonWorld* nWorld;

using namespace irr;
using namespace core;
using namespace scene;
using namespace video;
using namespace io;
using namespace gui;

int main()
{
   nWorld = NewtonCreate (NULL, NULL);
   IrrlichtDevice *device = createDevice(EDT_SOFTWARE,
                            dimension2d<s32>(640,480), false);

   IVideoDriver* driver = device->getVideoDriver();
   ISceneManager* smgr = device->getSceneManager();

   while(device->run())
   {
      driver->beginScene(true, true, video::SColor(0,0,0,0));
      smgr->drawAll();
      driver->endScene();
   }
   device->drop();
   return 0;
}

Gdy spróbuję skompilować coś lepszego to wyskakuje mi błąd systemu Windows (zawsze klikam "nie wysyłaj")

Offline Mr. Spam

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


Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 17:48:13
Te tutoriale też już widziałem, kompilują się ale jest błąd przy uruchomieniu :/

Offline Kurak

  • Użytkownik

# Czerwiec 03, 2007, 17:51:50
Te tutoriale też już widziałem, kompilują się ale jest błąd przy uruchomieniu :/
Jaki błąd, na pana ciemności?

Odpal to chociaż po debuggerem.

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 18:14:56
Każde demo daje taki sam rezultat:

Offline Kurak

  • Użytkownik

# Czerwiec 03, 2007, 18:26:01
Ale mi chodzi o to, kiedy ten błąd występuje - z konsoli widać, że po lub w czasie tworzenia urządzenia Irrlichta... Jeszcze raz ponawiam - odpal to pod debuggerem (najlepiej jakimś normalnym, jak np. ten z VC++, bo dev-c++'owy odpluskwiacz [tak to się nazywało?] jest raczej bezużyteczny).

Ja nie mam problemu z używaniem jednocześnie Irrlichta i Newtona (najnowszego), przy czym Irrlicht to najnowsza wersja z SVN (bo 1.3 jest zabugowana).

Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Czerwiec 03, 2007, 18:30:37
Sądząc po screenie, odpalanie debuggera nie byłoby zbyt praktyczną radą :D.
Spróbuj zmienić używany driver na coś konkretnego (DirectX lub OpenGL), może to jest przyczyną, a na akceleracji software'owej chyba i tak nie będziesz nic robił :).

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 18:33:31
zmieniać drivery próbowałem, poradziłem już sobie z tym ale ... niestety nie widać pudeł :P

Offline Kurak

  • Użytkownik

# Czerwiec 03, 2007, 18:35:22
zmieniać drivery próbowałem, poradziłem już sobie z tym ale ... niestety nie widać pudeł :P
Jakich pudeł, jeśli można spytać? ;D

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 18:36:40
bo próbuję uruchomić to demo: http://irrlicht.sourceforge.net/tut_newton.html
a w nim przedstawione są kolizje właśnie pudeł ;]

Offline Wyszo

  • Użytkownik

# Czerwiec 03, 2007, 18:40:13
@up:

no jak to, sam mówiłeś przed chwilą, że Ci wcale nie działa... ktoś tu się gubi w zeznaniach...

Czyli rozumiem, że moja odpowiedź jest już nieaktualna:


Naturalnie, że ten pierwszy tutorial nie działa - jak sam zauważyłeś:

Cytuj
Note: This tutorial worked with Newton before version 1.53 only, and because of changes in the physics engine since that version, it won't work with newer versions. This tutorial is to be updated.

Niedawno przekopałem się przez ten tutorial i tak naprawdę jedyny fragment niekompatybilny z nową wersją Newtona (tfu, co ja gadam - wbrew temu co jest napisane powyżej, Newton nie ma z tym nic wspólnego - problem stanowi klasa matrix4 z Irrlichta) to ten (w funkcji SetMeshTransformEvent):

// copy the matrix into an irrlicht matrix4
matrix4 mat;
memcpy(mat.M, matrix, sizeof(float)*16);

Tak się składa, że od pewnego czasu matrix4::M jest składnikiem prywatnym, a nie publicznym, więc musisz sobie ręcznie przepisać macierz, chociażby uzyskując dostęp do poszczególnych pól przez nawiasy klamrowe.



Offline Złośliwiec

  • Użytkownik
    • Dark Cult

# Czerwiec 03, 2007, 18:40:57
zmieniać drivery próbowałem, poradziłem już sobie z tym ale ... niestety nie widać pudeł :P

A kiedy program ci się wydupcza na starcie, to pudła widać? :)

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 18:47:56
W klasie macierzy wziąłem w komentarz "private: " :D

Hm, demo się uruchamia, widać mapę i skyboxa ... ale brakuje właśnie pudeł,
nie wywala mi już błędu.
« Ostatnia zmiana: Czerwiec 03, 2007, 18:57:29 wysłana przez Queight »

Offline Wyszo

  • Użytkownik

# Czerwiec 03, 2007, 18:50:18
Pfff... czyli po prostu w ferworze walki z błędami zgubiłeś linijkę dodającą nowy CubeSceneNode do SceneManagera. Innej możliwości nie widzę.

Offline Wosq

  • Użytkownik

# Czerwiec 03, 2007, 18:56:04
Wszystko jest sprawdzałem, problem jest pewnie w macierzach. Sprawdze czy działa ze starszą wersją irrlichta