[n3xt-D] un moteur pour PureBasic

Généralités sur la programmation 3D
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

J'ai une erreur de syntaxe, ligne 103 du fichier Medias_Loader.pbi,
( NewMap SkyBoxMap.s() ) j'ai pas trop percuté pour remettre le tout en ordre :|
Force et sagesse...
Avatar de l’utilisateur
GeBonet
Messages : 453
Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique

Re: [n3xt-D] un moteur pour PureBasic

Message par GeBonet »

Bonjour,

Je viens de tomber (v'lan..) sur un ensemble donnant de la 3D qui mes semble aussi intéressant que ce que j'ai vu avec vos moteur...
N'étant pas mon domaine, je vous le soumets a vous de juger...
le liens de chargement : http://home.euphonynet.be/bonet/Xors3D.rar

Amusez vous si possible !
Windows 7 et Windows 8.1 Pb 5.0 jusque 5.24 Lts 64 et 5.3 (64)/b]
“Ceux qui rêvent éveillés ont conscience de mille choses qui échappent à ceux qui ne rêvent qu’endormis.”
-Edgar Allan Poe-
Anonyme

Re: [n3xt-D] un moteur pour PureBasic

Message par Anonyme »

@tmyke , c 'est la bêta 5 :wink:
@GeBonet , je jette un coup d'oeil
beauregard
Messages : 1307
Inscription : dim. 08/juil./2007 18:32
Localisation : Toulouse

Re: [n3xt-D] un moteur pour PureBasic

Message par beauregard »

GeBonet a écrit :Bonjour,
Amusez vous si possible !
avant de télécharger, c'est quoi exactement ?
Cpl.Bator a écrit :@tmyke , c 'est la bêta 5 :wink:
arf !
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

GeBonet a écrit :Bonjour,

Je viens de tomber (v'lan..) sur un ensemble donnant de la 3D qui mes semble aussi intéressant que ce que j'ai vu avec vos moteur...
N'étant pas mon domaine, je vous le soumets a vous de juger...
le liens de chargement : http://home.euphonynet.be/bonet/Xors3D.rar

Amusez vous si possible !
Je connais, c'est un très bon moteur. Juste deux commentaires, c'est uniquement DX9, et c'est pas gratuit.
D'ailleurs, la version que tu propose et qui semble être sur ton serveur, elle vient d'ou (elle ne semble pas bridée ) ?

Cpl.Bator a écrit :@tmyke , c 'est la bêta 5 :wink:
Arrff, mais c'est bien sûr, moi qui attend toujours la version release pour la télécharger, je vais devoir
devancer l'appel ;)
Force et sagesse...
Avatar de l’utilisateur
GeBonet
Messages : 453
Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique

Re: [n3xt-D] un moteur pour PureBasic

Message par GeBonet »

Effectivement, je l'ai téléchargé parce libre de téléchargement, essayée...
Trouvé pas mal, puis je la transmet à partir de mon "serveur" ou plutôt endroit de rangement/diffusion qui pourrait devenir serveur :wink: )...
En outre il y a je crois l'adresse du site d'origine dans l'un ou l'autre des exemples !
Comme je vous l'ai dis, c'est pas mon domaine, mais ça marche bien... Point ! :lol:
Et peut-être il y a des truc pour vous inspirer ??? Bref, c'est comme vous voulez !
A++
GeBonet
Windows 7 et Windows 8.1 Pb 5.0 jusque 5.24 Lts 64 et 5.3 (64)/b]
“Ceux qui rêvent éveillés ont conscience de mille choses qui échappent à ceux qui ne rêvent qu’endormis.”
-Edgar Allan Poe-
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

Je connais ce moteur, qui c'est très fortement inspiré de Blitz3D, d'ailleurs certaines extension fournis par la même équipe sont spécifiquement
destiné à B3D. Il reprend la même logique et la même philosophie que B3D ou encore Dreamotion3D.
Merci pour le lien en tous les cas, c'est une solution 3D supplémentaire à porté des amateurs de PureBasic.
Force et sagesse...
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

Bon je viens de tester ton archive Cpl.Bator, j'ai bien le soucis, je vais voir si j'en trouve l'origine...
... mais bon, au vue de ce que j'ai lu sur le forum officiel, Irrlicht n'est pas multithread, donc je pense
que cela posera de toute façon des problèmes....
Force et sagesse...
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

comtois a écrit :Pour info, j'ai ajouté n3xtd sur dvp
http://purebasic.developpez.com/outils/?page=m3d#N3XTD

Si tu as des remarques, n'hésite pas :)
Je suis revenu sur la page pour lire cela sérieusement, et c'est nickel,
pour une présentation rapide, c'est bien et propre, merci les gars :)
Force et sagesse...
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

Bon, j'ai mis à jour les archives N3xtD. (je n'ai toujours pas réglé les soucis soulevé par Progi avec Linux pour le moment).

Les changement portent surtout sur les sprites2D. C'est plus simple à gérer, j'ai modifié le code
de 045_Game2D et aussi ajouté un sample 054_SingleSprite2D qui est plus simple d'approche.

Attention, ne pas confondre sous N3xtD (comme sur tous les moteurs 3D d'ailleurs) les Sprites3D et
les Sprites2D.

Sinon, pour ce qui est des SkyBox, Cpl.Bator à la suite de tes questions, pour ce qui est de changer
la taille du sky tu peux passer tout simplement par iScaleNode(), quand au reste il faut faire du
render to texture sur l'une des 6 textures du SkyBox.

Sinon, pour ce qui est de la partie multithreading, je n'ai pas réussi à solutionner le truc, comme je
l'ai souligné plus haut, Irrlicht n'étant pas multithreading, je pense que pour le moment se n'est pas
vraiment possible...
Force et sagesse...
Anonyme

Re: [n3xt-D] un moteur pour PureBasic

Message par Anonyme »

J'va regardé tout ca , en plus je tourne sur XP en se moment , je part à la découverte de VC++ 2008.
pas trop mal comme environnement de développement.

Sinon, pour ce qui est de la partie multithreading, je n'ai pas réussi à solutionner le truc, comme je
l'ai souligné plus haut, Irrlicht n'étant pas multithreading, je pense que pour le moment se n'est pas
vraiment possible...
C'est bizarre , il m'a sembler avoir vu sur le net des gars utilisant des threads avec irrlicht pour les médias :roll:
Sinon, pour ce qui est des SkyBox, Cpl.Bator à la suite de tes questions, pour ce qui est de changer
la taille du sky tu peux passer tout simplement par iScaleNode(), quand au reste il faut faire du
render to texture sur l'une des 6 textures du SkyBox.
j'vais étudier cela.


ps:
le système de la souris n'est pas parfait ( iMouseDeltaN() )
la souris est dès fois bloqué , dès fois non , impossible de trouver la cause.
Anonyme

Re: [n3xt-D] un moteur pour PureBasic

Message par Anonyme »

Le rendu sur texture est bien pour des petites scènes pas trop complexe.
Dès lors que je veut rendre un objet sur la skybox , celle ci deviens noir , avec l'objet dedans , impossible de redessiner la texture d'origine avant.

Donc , un truc à rajouté , la creation de skybox dynamique.

*SkyBox = iCreateDynamicSkybox(SizeX,SizeY,SizeZ)
iAddObjectToDynamicSkybox(*SkyBox,*Node,x,y,z) ; L'objet sera rendu uniquement dans la skybox dynamique à la position xyz. le node sort donc du pipeline standard.

Comme cela , plus de rendu sur texture , mais un rendu "normal" dans un premier temps , puis un rendu de la scène par dessus.
là , ce sera le top ! ;)
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

J'va regardé tout ca , en plus je tourne sur XP en se moment , je part à la découverte de VC++ 2008.
pas trop mal comme environnement de développement.
moi je sais que j'aime bien, c'est très pro et stable ;)
C'est bizarre , il m'a sembler avoir vu sur le net des gars utilisant des threads avec irrlicht pour les médias
En fait, certains s'y essais, car de nos jour c'est une capacité que l'on ne peux pas écarter et qu'il faut
de se fait savoir dompter...
e système de la souris n'est pas parfait ( iMouseDeltaN() )
oui, cela fait aprtie de ces petits truc gênant que je n'arrive pas encore à régler
totalement...
Donc , un truc à rajouté , la creation de skybox dynamique.
Sur le principe, j'adhère totalement, mais cela reste très marginale comme utilisation.
Je vais déjà voir comment faire avec quelques instruction directement avec PB
pour arriver à un bon résultat. Si cela se révèle difficile, alors je pondrais une
ou deux instruction facilitent la chose...
(tu jètes les bases d'un Tachyon Storm like ou quoi ;) )
Force et sagesse...
Anonyme

Re: [n3xt-D] un moteur pour PureBasic

Message par Anonyme »

on va dire ca ^^ , je voudrais faire une sacrée démo technique en réalité.
j'ai pas encore de thème , je m'essaye à des tas de trucs , j'obtiens sans problème le rendu de Tachyon storm.


ha oui , je profite de se topic , je commence à piger les shaders , je me suis amusé directement en opengl 3 , pas évident à comprendre...
mais n3xtd me remet une couche d'incompréhension...

exemple :
un shader (glsl) de blur que j'ai volé je sais plus ou...

frag :

Code : Tout sélectionner

// Texture to blur
uniform sampler2D texScreen;

// Texture size
uniform vec2 size;

// blur horizontal ou vertical
uniform bool horizontal;

// Taille du blurage
uniform int kernel_size;



void main()
{
	vec2 pas = 1.0/size;
	vec2 uv = gl_TexCoord[0].st;
	vec4 color = vec4(0.0, 0.0, 0.0, 1.0);

	
	// HORIZONTAL BLUR
	if(horizontal) {
		int j = 0;
		int sum = 0;
		for(int i=-kernel_size; i<=kernel_size; i++) {
			vec4 value = texture2D(texScreen, uv + vec2(pas.x*i, 0.0));
			int factor = kernel_size+1 - abs((float)i);
			color += value * factor;
			sum += factor;
		}
		color /= sum;
	}
	
	// VERTICAL BLUR
	else {
		int j = 0;
		int sum = 0;
		for(int i=-kernel_size; i<=kernel_size; i++) {
			vec4 value = texture2D(texScreen, uv + vec2(0.0, pas.y*i));
			int factor = kernel_size+1 - abs((float)i);
			color += value * factor;
			sum += factor;
		}
		color /= sum;
	}
	
	gl_FragColor = color;
	gl_FragColor.a = 1.0;
}
vert :

Code : Tout sélectionner

void main()
{
  gl_TexCoord[0] = gl_MultiTexCoord0;
  gl_Position = ftransform();
} 
je vois des variable uniform en debut de fichier , j'ai compris que c'est en gros des paramètres que l'on envois à partir de notre programme , ici on dois lui envoyer , la texture à bluré , la taille , le mode ( hori / verti ) , la taille du blurage.
& avec les exemples , je suis perdu avec les callbacks , les matrices de vue de camera , vecteur couleur , etc...
tmyke
Messages : 1554
Inscription : lun. 24/juil./2006 6:44
Localisation : vosges (France) 47°54'39.06"N 6°20'06.39"E

Re: [n3xt-D] un moteur pour PureBasic

Message par tmyke »

Je connais pas trop GLSL (mon truc c'est plutôt HLSL).

Mais pour les grands principes, c'est pareil.

Les Callback sont en fait là pour faciliter l'envoie au shader les éléments
qui lui sont indispensable pour travailler. L'avantage du callback, c'est qu'une
fois définis, la procedure sera appelée avant chaque rendu de l'objet en question.
Pas besoin de penser à faire un appel soit même, ce qui peux être très vite long
et fastidieux quand on gère des centaines de nodes.

Ensuite, les shaders sont aveugle. En d'autre terme il faut lui balancer dans
certains cas un ensemble de donnée qui lui seront indispensable.
Par exemple pour ce qui est de vertexshaders, il faut envoyer les matrices de
base pour un représentation correcte de chaque objet (donc les matrices de
View, projection et World, du moins pour les HLSL, pour les GLSL il y a quelques
éléments qui sont envoyés automatiquement je crois).
Il faut souvent aussi envoyer les élément constituant les material des objets
ainsi que les référence des textures employées.

Les shaders sont très puissants, mais ils ne savent pas 's'accaparer' les éléments
de bases de chaque objet avant de render.

C'est pour cela que dans l'exemple 201, on en passe par toute ces données transmises
dans la procedure CallbackShader

J'ai surement pas été très clair, mais c'est une amorce de réponse... ;)
Force et sagesse...
Répondre