begin process at 2012 02 16 21:09:32
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

OpenGL

 > 3D IMPORT : *.RAW (BIENTOT *.3DS)

3D IMPORT : *.RAW (BIENTOT *.3DS)


 Information sur la source

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :OpenGL Niveau :Initié Date de création :01/03/2002 Date de mise à jour :01/03/2002 09:12:47 Vu / téléchargé :5 647 / 344

Auteur : Geff

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Voila un p'tit code qui sert a importer le type de format *.RAW, le rendu se fait en opengl est n'est pas optimisé a fond, mais permet au neophyte (sous la condition de la curiosité) d'apprendre quelques petites bases OpenGL. Le code d'importation est tres petit comme vous pourrais le voir. Utilisation : Pour faire tourner plus ou moins vite l'objet : fleche gauche ou droite, pour s'approcher ou s'éloigner du centre: fleche haut et bas, zoom paramétrable, 3D plein, 3D Fil de fer, activer/desactier la grille et la rotation automatique. Pour apprécier le rendu, j'ai intégré une petite lumiére symbolisée par la boule, vous pouvez paramétrer dans le code DrawGL cette lumiére. 6 fichiers RAW sont fournis. Vous pouvez retrouver l'esemble des formats que j'ai importé dans le code "3D Import : Tout : *.ASC, *.ASE, *.OBJ, *.OFF, *.RAW.

Source

  • Global NmbRawObjet As Integer
  • Private Type VerticeV
  • X As Single
  • Y As Single
  • Z As Single
  • End Type
  • Private Type FaceV
  • Vertice(3) As VerticeV
  • End Type
  • Private Type RAWObjetV
  • NmbFace As Integer
  • Face() As FaceV
  • Nom As String
  • Ochar As Integer
  • End Type
  • Public RAWObjet() As RAWObjetV
  • Private Sub GetObjet()
  • On Error Resume Next
  • n = Split(F, vbCrLf & vbNewLine)
  • NmbRawObjet = UBound(n) + 1
  • ReDim Preserve RAWObjet(NmbRawObjet)
  • For I = 0 To UBound(n)
  • T = 1: Q = 0
  • If I = 0 Then T = 3: Q = 3
  • J = InStr(T, F, n(I))
  • K = InStr(2, n(I), vbCrLf)
  • RAWObjet(I + 1).Nom = Mid(n(I), T, K - T)
  • RAWObjet(I + 1).Ochar = J + Q
  • Next
  • End Sub
  • Private Sub GetVertex()
  • T = 4
  • For I = 1 To NmbRawObjet
  • With RAWObjet(I)
  • If NmbRawObjet <= 1 Or I = NmbRawObjet Then
  • Fin = Len(F)
  • Else
  • Fin = RAWObjet(I + 1).Ochar + -.Ochar - Len(.Nom) - 2
  • End If
  • S = Mid(F, .Ochar + 2 + Len(.Nom), Fin)
  • V = Split(S, vbCrLf)
  • .NmbFace = UBound(V)
  • For J = 0 To .NmbFace
  • ReDim Preserve .Face(J)
  • With .Face(J)
  • U = Split(V(J), " ")
  • n = 0
  • For K = 0 To UBound(U)
  • n = n + 1
  • W = Split(U(K), " ")
  • With .Vertice(n)
  • .X = Val(W(0)) * T
  • .Y = Val(W(1)) * T
  • .Z = -Val(W(2)) * T
  • End With
  • Next
  • End With
  • Next
  • End With
  • Next
  • End Sub
  • Sub LoadRAW(Fichier As String)
  • 'Loading "CHARGEMENT DE " & Fichier
  • Open Fichier For Input As 1
  • F = CStr(Input$(LOF(1), #1))
  • Close
  • 'Loading "OBJET"
  • GetObjet
  • 'Loading "VERTICES"
  • GetVertex
  • 'Loading "FIN", False
  • End Sub
Global NmbRawObjet As Integer

Private Type VerticeV
    X As Single
    Y As Single
    Z As Single
End Type

Private Type FaceV
    Vertice(3) As VerticeV
End Type

Private Type RAWObjetV
    NmbFace As Integer
    Face() As FaceV
    Nom As String
    Ochar As Integer
End Type

Public RAWObjet() As RAWObjetV

Private Sub GetObjet()
On Error Resume Next

n = Split(F, vbCrLf & vbNewLine)

NmbRawObjet = UBound(n) + 1
ReDim Preserve RAWObjet(NmbRawObjet)

For I = 0 To UBound(n)
    T = 1: Q = 0
    If I = 0 Then T = 3: Q = 3
    J = InStr(T, F, n(I))
    K = InStr(2, n(I), vbCrLf)
    RAWObjet(I + 1).Nom = Mid(n(I), T, K - T)
    RAWObjet(I + 1).Ochar = J + Q
Next

End Sub

Private Sub GetVertex()
T = 4
For I = 1 To NmbRawObjet
    With RAWObjet(I)
        If NmbRawObjet <= 1 Or I = NmbRawObjet Then
            Fin = Len(F)
        Else
            Fin = RAWObjet(I + 1).Ochar + -.Ochar - Len(.Nom) - 2
        End If
        S = Mid(F, .Ochar + 2 + Len(.Nom), Fin)
        V = Split(S, vbCrLf)
        .NmbFace = UBound(V)
        For J = 0 To .NmbFace
            ReDim Preserve .Face(J)
            With .Face(J)
                U = Split(V(J), "  ")
                n = 0
                For K = 0 To UBound(U)
                n = n + 1
                    W = Split(U(K), " ")
                    With .Vertice(n)
                        .X = Val(W(0)) * T
                        .Y = Val(W(1)) * T
                        .Z = -Val(W(2)) * T
                    End With
                Next
            End With
        Next
    End With
Next

End Sub

Sub LoadRAW(Fichier As String)

'Loading "CHARGEMENT DE " & Fichier
Open Fichier For Input As 1
F = CStr(Input$(LOF(1), #1))
Close

'Loading "OBJET"
GetObjet
'Loading "VERTICES"
GetVertex
'Loading "FIN", False

End Sub 

 Conclusion

Petit code de l'importation! Tout est dans le zip!

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture RESOLUTION DE POLYNÔME DE DEGRÈS N (CAD DE N'IMPORTE QUEL DE...
Source avec Zip Source avec une capture LISSAGE D'UN OBJET 3D :: SUBDIVISION
Source avec Zip Source avec une capture LISSAGE D'UNE COURBE DÉFINIT PAR DES POINTS (SUBDIVISION)
Source avec Zip Source avec une capture METABALLS 3D OU BLOBS & MARCHING CUBES
Source avec Zip Source avec une capture METABALLS 2D EFFET GRAPHIQUE SYMPA

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) MATRICE DE ROTATION, QUATERNION ET 3D par CGSI3
Source avec une capture APPLICATION_LOGICIEL par ladygirl1688
Source avec Zip Source avec une capture [GAMBAS] CLIENT FROG CREATOR par astralien3000
Source avec Zip Source avec une capture OPENGL AVEC VB6 par CGSI3
Source avec une capture BASSBOX (AUDIO + OPENGL VISUAL PLUGINS) par Zap

Commentaires et avis

Commentaire de simon22 le 14/02/2005 08:45:35

Je trouve sa sympas !! Mais ne pourrai tu pas le faire sans opengl ?
Se serai encor mieux car tout le monde na pas les bibliothèques sinon c un projet sérieux qui a demander réflexion bravo 10\10
                                      bonne prog simon

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales