#0 

03-06-2008 13:54:02

Sakamakak
Membre
Date d'inscription: 28-05-2008
Messages: 18

Bonjour à tous,
Je tente un peu désespérément d'appliquer une épaisseur au dessin d'une ligne avec draw2DLine, mais ça ne fonctionne pas.
Voilà un exemple de ce que je fais :

Code:

video::SMaterial mtl ;
mtl.Thickness = 10.0f ;
driver->setMaterial(mtl) ;
...
driver->draw2DLine(...);

La ligne s'affiche sans problème mais toujours avec une épaisseur de 1 pixel. C'est agaçant car c'est super élémentaire, mais je ne comprend pas pourquoi ça ne fonctionne pas.
Une idée ?
Merci par avance smile

Hors ligne


#1 

03-06-2008 14:56:43

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

Je viens de faire un test et ca marche tres bien, ca doit peut etre  venir de ton code . ( testé avec la dernier version: 1.4)

Hors ligne


#2 

03-06-2008 15:20:37

Sakamakak
Membre
Date d'inscription: 28-05-2008
Messages: 18

Bon alors j'ai fait un test moi aussi, avec le code le plus basique possible qui est ci-dessous :

Code:

#include <irrlicht.h>

using namespace irr;
using namespace video;

IrrlichtDevice *device;
IVideoDriver* driver;

int main()
{
    SIrrlichtCreationParameters creationParameters = SIrrlichtCreationParameters();
    creationParameters.DriverType = video::EDT_DIRECT3D9;
    creationParameters.WindowSize = core::dimension2d<s32>(640, 480);
    
    device = createDeviceEx(creationParameters);
    driver = device->getVideoDriver();

    video::SMaterial mtl ;
    mtl.Thickness = 100.00f ;
    driver->setMaterial(mtl);

    while(device->run())
    {
        if (device->isWindowActive())
        {
            driver->beginScene(true, true, video::SColor(255,0,0,0));
                driver->draw2DLine(core::position2d<s32>(10,10), core::position2d<s32>(60,80), video::SColor(255,255,0,0) );
            driver->endScene();
        }
    }
    device->drop();
    return 0;
}

Et ca ne marche toujours pas ! :p
Je dois avouer que je ne comprend pas. La ligne 2D s'affiche bien, mais aucune prise en compte de l'épaisseur (thickness).
Qu'est qui pourrait ne pas aller ? Direct3D qui n'aime pas peut être ? :p

Hors ligne


#3 

03-06-2008 16:20:24

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

Effectivement sous Direct3d ca semble ne pas etre pirs en compte , allez savoir pourquoi ? il faudrait voir si  sur le site officiel ils en parlent .

Hors ligne


#4 

03-06-2008 16:24:22

Sakamakak
Membre
Date d'inscription: 28-05-2008
Messages: 18

Je dois avouer que ça ne m'arrange pas vraiment. :p
Je vais continuer a fouiller sur le site officiel, mais je n'ai rien trouvé jusqu'à présent.
une idée pour implémenter un algorithme qui pourrait épaissir le tracé d'une ligne ?

Hors ligne


#5 

03-06-2008 16:38:14

Ikam
Membre
Date d'inscription: 16-05-2007
Messages: 56
Site web

je crois que directx ne gère pas les lignes de taille supérieures à 1 pixel.

Néanmoins je crois aussi qu'il existe une méthode mais il me semble que c'etait un truc relativement complexe.

Hors ligne


#6 

03-06-2008 17:54:16

firnafin
Abonné
Date d'inscription: 31-03-2007
Messages: 150

Sakamakak :

une idée pour implémenter un algorithme qui pourrait épaissir le tracé d'une ligne ?


Bien tu peux faire comme un rectangle avec draw2dpolygone.

Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1426 sujets
11116 messages
Dernier membre inscrit: Bidule
12 invités en ligne
Aucun membre connecté
RSS Feed