Publié : sam. 22/mars/2008 19:14
Il y a des model 3D gratuit sur le web, mais bien souvent, l'animation n'est pas encore faite et donc ça sert a rien au final lol
Forums PureBasic - Français
https://www.purebasic.fr/french/
Cpl.Bator a écrit : Grâce a tmyke d'ailleurs j'espère pouvoir avoir un dreamotion sous linux pour mon utilisation perso.
Passer Dreamotion3D sous linux veut dire un portage du code sous OpenGL. C'est possible, mais comme tu dis,cha0s a écrit : c'est vrai que un dreammotion sous linux sa serait le pied.
Cependant j'ai regardé les sources et le travaille semble assez titanesque je pense que si on veut que cela se realise
il faudrait qu'ont aportes notre aide a tmyke.
Tmyke , je profite de se topic pour te faire une relance , la fonction lookat n'existe pas sous dreamotion, du peut pointé une entité sur une autre mais pas avec des vecteurs.InitEngine.l()
RenderWorld(*CCamera)
BeginScene()
EndScene()
EnableZBuffer()
DisableZBuffer()
CreateCube.l(*Parent = #Null)
CreateSphere.l(Radius.f,Iteration.l,*Parent = #Null)
EntityRendering(*CEntity,*CEntity_Camera)
TranslateEntity(*CEntity,x.f, y.f, z.f, glob.b=#False)
TurnEntity(*CEntity,x.f, y.f, z.f, glob.b=#False)
RotateEntity(*CEntity,x.f, y.f, z.f, glob.b=#False)
PositionEntity(*CEntity,x.f, y.f, z.f, glob.b=#False)
ScaleEntity(*CEntity,x.f, y.f, z.f, glob.b=#False)
MoveEntity(*CEntity,x.f, y.f, z.f)
GetEntityX.f(*CEntity, glob.b=#False)
GetEntityY.f(*CEntity, glob.b=#False)
GetEntityZ.f(*CEntity, glob.b=#False)
GetEntityPitch.f(*CEntity, glob.b=#False)
GetEntityYaw.f(*CEntity, glob.b=#False)
GetEntityRoll.f(*CEntity, glob.b=#False)
PointEntity(*CEntity_Source ,*CEntity_target,roll.f)
EntityWired(*CEntity,state.b)
CountChildreen(*CEntity)
CreatePivot(*Parent=#Null)
SetEntityMesh(*CMesh,*Parent = #Null)
CreateCamera.l(width,height, near.f=1, far.f=1000)
CreateLight.l(num_ordre.l,type.b,*Parent = #False)
SetLightAmbient(*CLight,red.f,green.f,blue.f,w.f=1)
SetLightDiffuse(*CLight,red.f,green.f,blue.f,w.f=1)
SetLightSpecular(*CLight,red.f,green.f,blue.f,w.f=1)
SetLightShininess(*CLight,value.f)
SetLightDirection(*CLight,x.f,y.f,z.f)
SetLightCutOff(*CLight,value.f)
SetLightConstantAttenuation(*CLight,value.f)
SetLightLinearAttenuation(*CLight,value.f)
SetLightQuadraticAttenuation(*CLight,value.f)
SetLightExponent(*CLight,value)
CreateMesh.l()
AddVertex.l(*CMesh, x.f , y.f , z.f , u.f , v.f , color.l=0)
AddFace.l(*CMesh,A.l,B.l,C.l)
SetVertexColor.b(*CMesh, vertice.l , r.f , g.f , b.f)
RenderingMesh(*CMesh)
UpdateNormal(*CMesh)
CountVertices.l(*CMesh)
TranslateMesh(*CMesh, x.f, y.f, z.f)
RotateMesh(*CMesh, x.f, y.f, z.f)
ScaleMesh(*CMesh, x.f, y.f, z.f)
CreateMaterial.l()
SetMaterialTexture(*CMaterial,*CTexture)
SetMaterialAmbient(*CMaterial,red.f,green.f,blue.f,w.f=1)
SetMaterialDiffuse(*CMaterial,red.f,green.f,blue.f,w.f=1)
SetMaterialSpecular(*CMaterial,red.f,green.f,blue.f,w.f=1)
SetMaterialEmissive(*CMaterial,red.f,green.f,blue.f,w.f=1)
SetMaterialShininess(*CMaterial,value.f)
SetEntityMaterial(*CEntity,*CMaterial)
CreateTexture.l(width, height)
TexturePutPixel(*CTexture, x, y,red.c ,green.c, blue.c, alpha.c)
GenerateTextureID.l(*CEntity,*CTexture)
SetTextureArray(*CTexture,*Array)
Code : Tout sélectionner
CMatrix CEntity::LookAT(CVector3 eye,CVector3 at,CVector3 up){
CVector3 zaxis;
zaxis.x = eye.x - at.x;
zaxis.y = eye.y - at.y;
zaxis.z = eye.z - at.z;
float dist = sqrt(zaxis.x * zaxis.x + zaxis.y * zaxis.y + zaxis.z * zaxis.z);
zaxis.x /= dist;
zaxis.y /= dist;
zaxis.z /= dist;
CVector3 xaxis;
xaxis.x = up.y * zaxis.z - up.z * zaxis.y;
xaxis.y = up.z * zaxis.x - up.x * zaxis.z;
xaxis.z = up.x * zaxis.y - up.y * zaxis.x;
dist = sqrt(xaxis.x * xaxis.x + xaxis.y * xaxis.y + xaxis.z * xaxis.z);
xaxis.x /= dist;
xaxis.y /= dist;
xaxis.z /= dist;
CVector3 yaxis;
yaxis.x = zaxis.y * xaxis.z - zaxis.z * xaxis.y;
yaxis.y = zaxis.z * xaxis.x - zaxis.x * xaxis.z;
yaxis.z = zaxis.x * xaxis.y - zaxis.y * xaxis.x;
float dot1 = xaxis.x * eye.x + xaxis.y * eye.y + xaxis.z * eye.z;
float dot2 = yaxis.x * eye.x + yaxis.y * eye.y + yaxis.z * eye.z;
float dot3 = zaxis.x * eye.x + zaxis.y * eye.y + zaxis.z * eye.z;
CMatrix mat;
mat.identity();
mat.elem[0][0]=xaxis.x;
mat.elem[0][1]=xaxis.y;
mat.elem[0][2]=xaxis.z;
mat.elem[0][3]=-dot1;
mat.elem[1][0]=yaxis.x;
mat.elem[1][1]=yaxis.y;
mat.elem[1][2]=yaxis.z;
mat.elem[1][3]=-dot2;
mat.elem[2][0]=zaxis.x;
mat.elem[2][1]=zaxis.y;
mat.elem[2][2]=zaxis.z;
mat.elem[2][3]=-dot3;
mat.elem[3][3]=1;
return mat;
}
Excelent, c'est vrai que tu en avais parlé, je regarde cela et je vois pour incorporer tonTmyke , je profite de se topic pour te faire une relance , la fonction lookat n'existe pas sous dreamotion, du peut pointé une entité sur une autre mais pas avec des vecteurs.
Dans une interview, il me semble que Fred a déclaré avoir quelques difficultés avec la 3D. Mais il est fermement résolu à marier PureBasic avec Ogre( 4.30), afin de proposer quelque chose de terrible.SPH a écrit :Je pose la question : est-ce que fred n'a pas su mettre en avant une conception 3D simple à réaliser ?Ca se pourrait bien !!
Ton travail, ton oeuvre, devrais je dire, est admirable, tes conseils précieux. Je suis d'accord avec toi, et j'utiliserai très certainement ton moteur si je n'étais déjà pas très occupé avec mon jeu 2D. Je peux donc ici livrer ma petite expérience et donc être plus nuancé pour la 2D: il est possible de faire un grand jeu en 2D( haute résolution, transparence, rotation( sprite3D), variables, tableaux, liste chainée, etc, rien ne manque pour réaliser "facilement" un jeu 2D classique( sans moteur physique hein). La 2D avec PB, çà déchire grave comme disent les jeunes!tmyke a écrit : Contrairement à d'autres langages comparables, Fred et son équipe à fait le choix de laisser un peu de coté le
'jeux' et la programmation 2D/3D ludique, pour aller couvrir d'autre domaines de programmation (utilitaire, etc..).
Je suis d'accord aussi avec toi , puis la 3D n'est pas près d'être mature , avec l' arriver de nouvelle technologie , du matériel de plus en plus puissant , de nouvelle méthode comme le photon mapping...la 3D est une technologie qui n'est pas encore arrivé à maturité( je précise: pour un concepteur solitaire). Et par conséquent, tout ce qui la simplifiera ne sera jamais mal venu.
Cpl.Bator a écrit :J'ai déjà importé pas mal de chose , d'une part grâce à embryon de moteur réalisé par Tmyke & moi même ( ose 3D ) qui n'a jamais vu le jour.
Je suis ravis d'apprendre vos échanges de connaissances, et je vous souhaite de réussir, et de, heu, faire perdurer votre travail d'équipe( en utilisant un moyen plus réactif que le forum quand mêmetmyke a écrit :Excelent, c'est vrai que tu en avais parlé, je regarde cela et je vois pour incorporer tonTmyke , je profite de se topic pour te faire une relance , la fonction lookat n'existe pas sous dreamotion, du peut pointé une entité sur une autre mais pas avec des vecteurs.
code dans DM3D
c'est pas cool, voyez. Faut absolument que tu répare au plus vite cette injustice( cette fois-ci ne la prend pas trop chaude, une moyenne gamme devrait suffire).Cpl.Bator a écrit :J'adore opengl, le hic , c'est que j'ai une CG pourrie , la mienne à brûlé l'été dernier... donc pô de shader...