Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Open GL + Lamborghini = Cool
#31
Smile Yes,. It seems to fail on larger files, smaller ones seem to do fine,. odd... And, yeah I saw that.. 4MB.. Tongue :lol:
Kevin (x.t.r.GRAPHICS)

[Image: 11895-r.png]
Reply
#32
Smile Problem fixed,.. try this 1 dumbledore: :lol:

Code:
SCREEN 13

OPEN "FileName.obj" FOR INPUT AS #1
OPEN "FileName.bas" FOR OUTPUT AS #2
vert = 0
DO
    IF init = 0 THEN INPUT #1, Blank1$: init = 1
    
    LINE INPUT #1, LineRender$
    SLEEP 100
    '###########################
    '# Find number of vertices #
    '###########################
    IF MID$(LineRender$, 1, 1) = "#" THEN
        cont = 2
        FOR i = 2 TO LEN(LineRender$)
            cont += 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            NmTx$ += MID$(LineRender$, i, 1)
        NEXT
        ONum += Num
        Num = VAL(NmTx$)
        NmTx$ = ""
        IF obj = 0 THEN
            DIM Vertex(Num, 3) as string
            DIM Normal(Num, 3) as string
            obj = 1
        ELSE
            REDIM Vertex(ONum + Num, 3) as string
            REDIM Normal(ONum + Num, 3) as string
        END IF
    END IF
    'PRINT ONum
    'PRINT ONum + Num
    '###########################
    '# Find value of vertices  #
    '###########################
    IF MID$(LineRender$, 1, 2) = "v " THEN
        vert = vert + 1
        cont1 = 3
        FOR i = 3 TO LEN(LineRender$)
            cont1 = cont1 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Vertex(vert, 1) += MID$(LineRender$, i, 1)
        NEXT
        cont2 = cont1
        FOR i = cont2 TO LEN(LineRender$)
            cont2 = cont2 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Vertex(vert, 2) += MID$(LineRender$, i, 1)
        NEXT
        cont3 = cont2
        FOR i = cont3 TO LEN(LineRender$)
            cont3 = cont3 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Vertex(vert, 3) += MID$(LineRender$, i, 1)
        NEXT
    END IF
    '###########################
    '# Find value of Normals   #
    '###########################
    IF MID$(LineRender$, 1, 2) = "vn" THEN
        norm = norm + 1
        cont1 = 4
        FOR i = 4 TO LEN(LineRender$)
            cont1 = cont1 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Normal(norm, 1) += MID$(LineRender$, i, 1)
        NEXT
        cont2 = cont1
        FOR i = cont2 TO LEN(LineRender$)
            cont2 = cont2 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Normal(norm, 2) += MID$(LineRender$, i, 1)
        NEXT
        cont3 = cont2
        FOR i = cont3 TO LEN(LineRender$)
            cont3 = cont3 + 1
            IF MID$(LineRender$, i, 1) = " " THEN EXIT FOR
            Normal(norm, 3) += MID$(LineRender$, i, 1)
        NEXT
    END IF
    '###########################
    '# Find Order Ratios       #
    '###########################
    IF MID$(LineRender$, 1, 2) = "f " THEN
        cont = 3
        DO
            IF MID$(LineRender$, cont, 1) = "/" THEN
                Number = VAL(Face$)
               ' print Number
               ' SLEEP 100
                PRINT #2, "glNormal3f ",  Normal(Number, 1), ",", Normal(Number, 2), ",", Normal(Number, 3)
                cont += 2
                Face$ = ""
                Number = 0
            ELSEIF MID$(LineRender$, cont, 1) = " " THEN
                Number = VAL(Face$)
                PRINT #2, "glVertex3f", Vertex(Number, 1), ",", Vertex(Number, 2), ",", Vertex(Number, 3)
                cont += 1
                Face$ = ""
                Number = 0
            ELSEIF cont >= LEN(LineRender$) THEN
                Face$ += MID$(LineRender$, cont, 1)
                Number = VAL(Face$)
                PRINT #2, "glVertex3f", Vertex(Number, 1), ",", Vertex(Number, 2), ",", Vertex(Number, 3)
                cont = 0
                Face$ = ""
                Number = 0
                EXIT DO
            END IF
            Face$ += MID$(LineRender$, cont, 1)
            cont += 1
        LOOP
    END IF
    IF INKEY$ = CHR$(255) + "X" THEN END
LOOP UNTIL EOF(1)
CLOSE #1
CLOSE #2
PRINT "Done!!"
SLEEP
Kevin (x.t.r.GRAPHICS)

[Image: 11895-r.png]
Reply
#33
nope, it still crashes. :lol:
ttp://m0n573r.afraid.org/
Quote:quote: "<+whtiger> you... you don't know which way the earth spins?" ... see... stupidity leads to reverence, reverence to shakiness, shakiness to... the dark side
...phear
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)