Page 8 of 12 FirstFirst ... 6 7 8 9 10 ... LastLast
Results 71 to 80 of 112

Thread: [WIP] .render_model exporter (First custom model ingame!)

  1. #71
    Senior Member thehoodedsmack's Avatar
    Join Date
    Sep 2006
    Posts
    3,151

    Re: [WIP] .render_model exporter (First custom model ingame!)

    Sweet Ever-loving Fark...

    Congratulations, Jahrain. You have won The Internet.

  2. #72
    The Child Pornographer Ki11a_FTW's Avatar
    Join Date
    Jan 2007
    Location
    NJ
    Posts
    2,661

    Re: [WIP] .render_model exporter (First custom model ingame!)

    :hyper:
    BEUTIFLE


    + reputation

  3. #73
    "Think Different" Masterz1337's Avatar
    Join Date
    Sep 2006
    Posts
    4,405

    Re: [WIP] .render_model exporter (First custom model ingame!)

    Great job! Props to you and whoever helped you.

  4. #74
    Master of the {KaS} Clan
    Join Date
    Jan 2007
    Posts
    176

    Re: [WIP] .render_model exporter (First custom model ingame!)

    WOW. I really cant wait for this. Great job.

  5. #75

    Re: [WIP] .render_model exporter (First custom model ingame!)

    very fucking nice jah, you are damn talented.

  6. #76
    Back for the Russian Halo p0lar_bear's Avatar
    Join Date
    Sep 2006
    Location
    Connecticut
    Posts
    5,572

    Re: [WIP] .render_model exporter (First custom model ingame!)

    DAY-UMMMMMMMN!

    This is a step in the right direction. Hope you can figure out the normals issue, simply out of performance concerns; wouldn't it take a bit more processing time to render a double-sided face? If so, is it negligible?

    Again, bravo. It's accomplishments like this that make me put faith into this community. I just hope Microsoft doesn't get its panties in a wad and ban anyone who has a map with custom render_models. :/

  7. #77
    I R Serious Texra DaneO'Roo's Avatar
    Join Date
    Sep 2006
    Location
    Australia
    Posts
    3,876

    Re: [WIP] .render_model exporter (First custom model ingame!)

    oh SNAP.


    ftw

  8. #78
    $20 bill y'all Bodzilla's Avatar
    Join Date
    Dec 2006
    Location
    Casino
    Posts
    11,453

    Re: [WIP] .render_model exporter (First custom model ingame!)

    that is awesome. keep up the great work bro

    +imaginary rep (<3 the rep system)

  9. #79

    Re: [WIP] .render_model exporter (First custom model ingame!)

    Thanks guys for the positive feedback.
    Quote Originally Posted by p0lar_bear View Post
    DAY-UMMMMMMMN!

    This is a step in the right direction. Hope you can figure out the normals issue, simply out of performance concerns; wouldn't it take a bit more processing time to render a double-sided face? If so, is it negligible?
    Well it does eat up more memory as the polygon count is doubled, but as far as performance wise, double sided faces really doesn't impact frame rates that noticeably since either way, the video hardware culls the back sides of the faces during render time.

    I have added options to manually flip the individual geometry section parts as the flipped polygons are random but uniform for each different part. Basically, if you load your model into the game, and you notice a certain part of the geometry has flipped triangles, you can go back to the upgrader and set that piece of geometry to have it's faces flipped. A model is divided up into parts based on which shader they used and which LOD they belong to so finding which geometry needs to be flipped isn't hard. So the problem has 2 optional work arounds until I figure out what causes the flipping of the polygons. I want to get a usable beta out as soon as possible and I won't let this problem halt it's release forever if I can't figure it out.


    Quote Originally Posted by p0lar_bear View Post
    Again, bravo. It's accomplishments like this that make me put faith into this community. I just hope Microsoft doesn't get its panties in a wad and ban anyone who has a map with custom render_models. :/
    Well they have banned people from halo 2 xbox with such mods, but I doubt theres seriously a way for live to detect if a custom map is using a custom model or not. We will see.


    Also, I'm planning on making an obj exporter for .render_model tags for referencing models, nodes, markers etc. Also as i promised, for anyone else who wants to make a importing script for 3ds max, this might help.

    Code:
    render_model structure
    
    main
    size = 264
        0x83 = nameStringSize             byte
        0x104 = compressionInfoBlockCount     int32
        0x116 = regionBlockCount         int32
        0x128 = sectionCount             int32
        0x140 = invalidSectionPairBitCount     int32
        0x152 = sectionGroupCount         int32
        0x176 = nodeCount             int32
        0x200 = markerCount             int32
        0x212 = shaderCount             int32
    nameString         string(Size = nameStringSize)
    
    ImportDataBlock
    size = 596
    
        CompressedJMSFilesBlock
        size = 540
            0x392 = CompressedJMSFilesBlockSize int32
    
    ZippedJMSDataBlock(s)
    
    compressionInfoBlock
    size = 56
        0x0 = positionBoundsMinX     float32
        0x4 = positionBoundsMaxX     float32
        0x8 = positionBoundsMinY     float32
        0x12 = positionBoundsMaxY     float32
        0x16 = positionBoundsMinZ     float32
        0x20 = positionBoundsMaxZ     float32
        0x24 = texCoordsBoundsMinX     float32
        0x28 = texCoordsBoundMaxX     float32
        0x32 = texCoordsBoundsMinY     float32
        0x36 = texCoordsBoundMaxY     float32
    
    
    
    regionsBlock
    size = 20
        0x3 regionNameStringLenght     byte
        0x8 = permutationCount         int32
    
        permutationBlock
        size = 16
            0x3 = permNameStringLenght     byte
            0x4 = L1SectionIndex         int16
            0x6 = L2SectionIndex         int16
            0x8 = L3SectionIndex         int16
            0x10 = L4SectionIndex         int16
            0x12 = L5SectionIndex         int16
            0x14 = L6SectionIndex         int16
             permNameString            string(permNameStringLenght)
    
        regionNameString             string(regionNameStringLenght)
    
    sectionBlock
    size = 104
        0x4 = totalVertexCount         int16
        0x6 = totalTriangleCount     int16
        0x8 = totalPartCount         int16
        0x10 = shadowTriangleCount     int16
        0x12 = shadowPartCount         int16
        0x14  opPointCount         int16
        0x16 = opVertexCount         int16
        0x18 = opPartCount         int16
        0x22 = shadowRigidTriangleCount int16
        0x26 = compressFlags         8bitBinary
    
        compressBoundsBlock
        size = 56
            0x0 = positionBoundsMinX     float32
            0x4 = positionBoundsMaxX     float32
            0x8 = positionBoundsMinY     float32
            0x12 = positionBoundsMaxY     float32
            0x16 = positionBoundsMinZ     float32
            0x20 = positionBoundsMaxZ     float32
            0x24 = texCoordsBoundsMinX     float32
            0x28 = texCoordsBoundMaxX     float32
            0x32 = texCoordsBoundsMinY     float32
            0x36 = texCoordsBoundMaxY     float32
    
        sectionDataBlock
        size = 180
            0x0 = partsBlockCount     int32
            0x36 = vertexBlockCount int32
            0x48 = stripIndexcount     int32
            0x164 = nodeMapCount     int32
    
    
            partsBlock
            size = 72
                0x6 = stripIndexStartIndex     int16
                0x8 = stripIndexLenght         int16
                0x14 = maxNodesPerVertex     int16
                0x16 = centroidX         float32
                0x20 = centroidY         float32
                0x24 = centriodZ         float32
        
            rawVertexBlock
            size = 196
                0x0 = vertexX         float32
                0x4 = vertexY         float32
                0x8 = vertexZ         float32
                0x28 = node0Weight     float32
                0x32 = node1weight     float32
                0x36 = node2weight     float32
                0x40 = node3weight     float32
                0x44 = node0index     int32
                0x48 = node1index     int32
                0x52 = node2index     int32
                0x56 = node3index     int32
                0x68 = texCoordx     float32
                0x72 = texCoordy     float32
                0x76 = normalI         float32
                0x80 = normalJ         float32
                0x84 = normalk         float32
                0x88 = binormalI     float32
                0x92 = binormalJ     float32
                0x96 = binormalK     float32
                0x100 = tangentI     float32
                0x104 = tangentJ     float32
                0x108 = tangentk     float32
            
            stripIndexBlock
            size = 2
                0x0 = vertexIndex     int16
                    
            nodeMapBlock
            size = 1
                0x0 = nodeIndex     byte
    sectionGroupBlock
    size = 16
        
    nodeBlock
    size = 96
        0x3 = nodeNameStringLength     byte
        0x4 = parentNodeIndex         int16
        0x6 = firstChildNodeIndex    int16
        0x8 = nextSibblingNodeIndex    int16
        0x10 = importNodeIndex        int16
        0x12 = translationX        float32
        0x16 = translationY        float32
        0x20 = translationZ        float32
        0x24 = rotationI        float32
        0x28 = rotationJ        float32
        0x32 = rotationK        float32
        0x36 = rotationW        float32
        0x40 = inverseForwardI        float32
        0x44 = inverseForwardK        float32
        0x48 = inverseForwardJ        float32
        0x52 = inverseLeftI        float32
        0x56 = inverseLeftJ        float32
        0x60 = inverseLeftK        float32
        0x64 = inverseUpI        float32
        0x68 = inverseUpJ        float32
        0x72 = inverseUpK        float32
        0x76 = inversePositionX        float32
        0x80 = inversePositionY        float32
        0x84 = inversePositionZ        float32
        0x88 = inverseScale        float32
        0x92 = distanceFromParent    float32
    markerGroupBlock
    size = 16
        0x3 = markerNameString
        0x4 = markerInstanceCount     int32
        markersBlock
        size = 36
            0x1 = regionIndex     byte
            0x2 = permutationIndex    byte
            0x3 = nodeIndex        byte
            0x4 = translationX    float32
            0x8 = translationY     float32
            0x12 = translationZ    float32
            0x16 = rotationI    float32
            0x20 = rotationJ    float32
            0x24 = rotationK    float32
            0x28 = rotationW    float32
            0x32 = scale         float32
        MarkerNameString         string
    
    shaderBlock
    size = 52
    
        0x24 = shaderStringLength     byte
    
    shaderStrings                 string(shaderStringLength)
    That is what I managed to map out for the the structure of the model just to be able to export it, so allot of data block and offset definitions are missing if one is to make an importer from it. But its a good start. It might also help anyone who wants to take a shot of making their own .render_model compiler/exporter. There are a few things that might be incorrect with it, but so far it work for me.
    Last edited by jahrain; July 7th, 2007 at 06:09 AM.

  10. #80

    Re: [WIP] .render_model exporter (First custom model ingame!)

    On another note, Heres my first success with the first none h2 weapon model ingame. Btw, ignore 10 second job shaders.



Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •