#1 

03-06-2008 11:54:02

Sakamakak
Membres
Avatar de Sakamakak
Date d'inscription:
Messages: 18
IP: 141.115.28.2
Courriel

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 :

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


#2 

03-06-2008 12:56:43

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 88.141.125.52
Courriel

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


#3 

03-06-2008 13:20:37

Sakamakak
Membres
Avatar de Sakamakak
Date d'inscription:
Messages: 18
IP: 141.115.28.2
Courriel

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

#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


#4 

03-06-2008 14:20:24

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 88.141.125.52
Courriel

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


#5 

03-06-2008 14:24:22

Sakamakak
Membres
Avatar de Sakamakak
Date d'inscription:
Messages: 18
IP: 141.115.28.2
Courriel

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


#6 

03-06-2008 14:38:14

Ikam
Membres
Date d'inscription:
Messages: 56
IP: 81.255.174.7
Courriel  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


#7 

03-06-2008 15:54:16

firnafin
Membres
Avatar de firnafin
Date d'inscription:
Messages: 150
IP: 88.141.125.52
Courriel

Sakamakak Ecris:

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é
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
169 invités en ligne
membre en ligne: -
RSS Feed