none
Converting X file to txt file, how to? RRS feed

  • Question

  • Hi

    I need to convert X file (DirectX) to txt file in order to change textures paths, and then back to X file, I need to use that file on game engine, I'm using Visual Basic.net and windows 10.

    I've tried treating X file as binary, but it does not, I'm not expert about but it seems most like utf-8, in fact the piece of code I've tried to read binary file thrown error, "do not encounter any valid digit", meanly it is not binary one, but I am unable to know the really X file encode.

    I've failing installing DirectX sdk on my pc, it allways thrown error 0x0005AA or something like this, I was expecting some library than help me to open or convert to txt, since I was unable to do it, so I'm looking for some code than help me to achieve it.

    Dim sourcePath As String = fileName        Dim destPath As String = "C:\Users\myname\Desktop\mymodel.x"        Dim sourceEncoding As Encoding = Encoding.UTF8        Dim destEncoding As Encoding = Encoding.ASCII        'String Path = "c:\\sample\\sample.xml";        Dim instream As Stream = File.OpenRead(sourcePath)        ' crear buffer para abrir stream        Dim bufin As BufferedStream = New BufferedStream(instream)        Dim myByte As Byte() = New Byte(128)        ' leer los primeros 128 bytes del archivo        bufin.Read(myByte, 0, 128)        Console.WriteLine("Allocated bytes: " + Encoding.ASCII.GetString(myByte))        ListBox1.Items.Add(Encoding.ASCII.GetString(myByte))

    There is a line of code giving me a error, but I don't know how to.

    Dim myByte As Byte() = New Byte(128)

    Any help would be much appreciate. :)


    Tuesday, March 17, 2020 11:20 PM

Answers

  • Hi,

    Talking only about the code that generated the error, nothing else, you can try changing it to:

            Dim myByte() As Byte = New Byte(128) {}

    Best Regards,

    Julie


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by Onlyme2013 Thursday, March 19, 2020 6:08 AM
    Wednesday, March 18, 2020 2:21 AM
    Moderator
  • PS You have to tell your virus checker to trust the vs project etc.

    Here is the code for those that cant use the downloaded project due to whatever. I am going to remove the project from the web site eventually.

    This is from the MS SDK of days past. You also need to set up the project for directx as shown here.

    '-----------------------------------------------------------------------------
    ' File: Meshes.vb
    '
    ' Desc: For advanced geometry, most apps will prefer to load pre-authored
    '       meshes from a file. Fortunately, when using meshes, D3DX does most of
    '       the work for this, parsing a geometry file and creating vertx buffers
    '       (and index buffers) for us. This tutorial shows how to use a D3DXMESH
    '       object, including loading it from a file and rendering it. One thing
    '       D3DX does not handle for us is the materials and textures for a mesh,
    '       so note that we have to handle those manually.
    '
    '       Note: one advanced (but nice) feature that we don't show here is that
    '       when cloning a mesh we can specify the FVF. So, regardless of how the
    '       mesh was authored, we can add/remove normals, add more texture
    '       coordinate sets (for multi-texturing), etc.
    '
    ' Copyright (c) 2000-2002 Microsoft Corporation. All rights reserved.
    '-----------------------------------------------------------------------------
    Imports System
    Imports System.Drawing
    Imports System.ComponentModel
    Imports System.Windows.Forms
    Imports System.IO
    Imports Microsoft.DirectX
    Imports Microsoft.DirectX.Direct3D
    Imports Direct3D = Microsoft.DirectX.Direct3D
    
    
    Namespace MeshesTutorial
        Public Class Meshes
            Inherits Form
    
            Private device As device = Nothing ' Our rendering device
            Private mesh As mesh = Nothing ' Our mesh object in sysmem
            Private meshMaterials() As Direct3D.Material ' Materials for our mesh
            Private meshTextures() As Texture ' Textures for our mesh
            Private presentParams As New PresentParameters()
            Private pause As Boolean = False
    
    
            Public Sub New()
                ' Set the initial size of our form
                Me.ClientSize = New System.Drawing.Size(400, 300)
                ' And it's caption
                Me.Text = "Direct3D Tutorial 6 - Meshes"
            End Sub 'New
    
    
            Function InitializeGraphics() As Boolean
                ' Get the current desktop display mode, so we can set up a back
                ' buffer of the same format
                Try
                    ' Set up the structure used to create the D3DDevice. Since we are now
                    ' using more complex geometry, we will create a device with a zbuffer.
                    presentParams.Windowed = True
                    presentParams.SwapEffect = SwapEffect.Discard
                    presentParams.EnableAutoDepthStencil = True
                    presentParams.AutoDepthStencilFormat = DepthFormat.D16
    
                    ' Create the D3DDevice
                    device = New Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentParams)
                    AddHandler device.DeviceReset, AddressOf Me.OnResetDevice
                    Me.OnResetDevice(device, Nothing)
                    pause = False
                Catch e As DirectXException
                    Return False
                End Try
                Return True
            End Function 'InitializeGraphics
    
            Public Sub OnResetDevice(ByVal sender As Object, ByVal e As EventArgs)
                Dim materials As ExtendedMaterial() = Nothing
    
                ' Set the directory up two to load the right data (since the default build location is bin\debug or bin\release
                Directory.SetCurrentDirectory((Application.StartupPath + "\..\"))
                Dim dev As Device = CType(sender, Device)
                ' Turn on the zbuffer
                dev.RenderState.ZBufferEnable = True
    
                ' Turn on ambient lighting 
                dev.RenderState.Ambient = System.Drawing.Color.White
                ' Load the mesh from the specified file
                mesh = mesh.FromFile("tiger.x", MeshFlags.SystemMemory, device, materials)
    
    
                If meshTextures Is Nothing Then
                    ' We need to extract the material properties and texture names 
                    meshTextures = New Texture(materials.Length) {}
                    meshMaterials = New Direct3D.Material(materials.Length) {}
                    Dim i As Integer
                    For i = 0 To materials.Length - 1
                        meshMaterials(i) = materials(i).Material3D
                        ' Set the ambient color for the material (D3DX does not do this)
                        meshMaterials(i).Ambient = meshMaterials(i).Diffuse
    
                        ' Create the texture
                        meshTextures(i) = TextureLoader.FromFile(dev, materials(i).TextureFilename)
                    Next i
                End If
            End Sub 'OnResetDevice
    
            Sub SetupMatrices()
                ' For our world matrix, we will just leave it as the identity
                device.Transform.World = Matrix.RotationY((Environment.TickCount / 1000.0F))
    
                ' Set up our view matrix. A view matrix can be defined given an eye point,
                ' a point to lookat, and a direction for which way is up. Here, we set the
                ' eye five units back along the z-axis and up three units, look at the 
                ' origin, and define "up" to be in the y-direction.
                device.Transform.View = Matrix.LookAtLH(New Vector3(0.0F, 3.0F, -5.0F), New Vector3(0.0F, 0.0F, 0.0F), New Vector3(0.0F, 1.0F, 0.0F))
    
                ' For the projection matrix, we set up a perspective transform (which
                ' transforms geometry from 3D view space to 2D viewport space, with
                ' a perspective divide making objects smaller in the distance). To build
                ' a perpsective transform, we need the field of view (1/4 pi is common),
                ' the aspect ratio, and the near and far clipping planes (which define at
                ' what distances geometry should be no longer be rendered).
                device.Transform.Projection = Matrix.PerspectiveFovLH(CSng(Math.PI / 4), 1.0F, 1.0F, 100.0F)
            End Sub 'SetupMatrices
    
            Private Sub Render()
                If device Is Nothing Then
                    Return
                End If
                If pause Then
                    Return
                End If
                'Clear the backbuffer to a blue color 
                device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, System.Drawing.Color.Blue, 1.0F, 0)
                'Begin the scene
                device.BeginScene()
                ' Setup the world, view, and projection matrices
                SetupMatrices()
    
                ' Meshes are divided into subsets, one for each material. Render them in
                ' a loop
                Dim i As Integer
                For i = 0 To meshMaterials.Length - 1
                    ' Set the material and texture for this subset
                    device.Material = meshMaterials(i)
                    device.SetTexture(0, meshTextures(i))
    
                    ' Draw the mesh subset
                    mesh.DrawSubset(i)
                Next i
    
                'End the scene
                device.EndScene()
                device.Present()
            End Sub 'Render
    
    
            Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
                Me.Render() ' Render on painting
            End Sub 'OnPaint
    
            Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
                If Asc(e.KeyChar) = CInt(System.Windows.Forms.Keys.Escape) Then
                    Me.Dispose() ' Esc was pressed
                End If
            End Sub 'OnKeyPress
    
            Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
                pause = (Me.WindowState = FormWindowState.Minimized Or Not Me.Visible)
            End Sub 'OnResize
    
            '/ <summary>
            '/ The main entry point for the application.
            '/ </summary>
            Shared Sub Main()
                Dim frm As New Meshes()
                If Not frm.InitializeGraphics() Then ' Initialize Direct3D
                    MessageBox.Show("Could not initialize Direct3D.  This tutorial will exit.")
                    Return
                End If
                frm.Show()
    
                While frm.Created
                    frm.Render()
                    Application.DoEvents()
                End While
            End Sub 'Main
    
            Private Sub InitializeComponent()
                '
                'Meshes
                '
                Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
                Me.ClientSize = New System.Drawing.Size(292, 266)
                Me.Name = "Meshes"
    
            End Sub
    
            Private Sub Meshes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            End Sub
        End Class 'Meshes
    End Namespace 'MeshesTutorial


    • Edited by tommytwotrain Thursday, March 19, 2020 9:31 AM
    • Marked as answer by Onlyme2013 Thursday, March 19, 2020 9:32 PM
    Thursday, March 19, 2020 9:29 AM

All replies

  •  

    Perhaps BitConverter Class is what you want??

    Wednesday, March 18, 2020 1:52 AM
  • Hi,

    Talking only about the code that generated the error, nothing else, you can try changing it to:

            Dim myByte() As Byte = New Byte(128) {}

    Best Regards,

    Julie


    MSDN Community Support Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    • Marked as answer by Onlyme2013 Thursday, March 19, 2020 6:08 AM
    Wednesday, March 18, 2020 2:21 AM
    Moderator
  • @ Julie

    Nice one, it works, ty for the tip. :)

    @ tommytwotrain

    I was giving a try to

    Someone has any idea about?

    I'm going to attach some block of X file as is, and some block of X file as txt (What I'm looking for)

    --------------------------------------------------------------------------

    xof 0303bzip0032¨±  €$'CKœWy\UÕö¿Šš
    hâTjjΙ¡ôÔ'ûìkÎ(bRNÈì€>œxf¦ŸœµrÄ~h8䐄‚9rÎ/9p¹"’ù|*C¤/rè§æøÎ:ðÝm®ò‡ï¿/ßû=k¯µ×úî¥-,U,u-ËX¿©‘ÃCf…
         ‰ªm©nqDÜî½àÙ¾~ôû_L>u½ƒ!}͐FŒ&õû!aá³gù†D    ‰šÝÀBŠF/T 
    )û½ýÞwFdȬWK‹ò˜eúÍ™9-"(pvÄŒÈÁ‘ÁA!³(ÁþyGÎ\Ü4xå9¿=»“½
    Þ2¾©IQÊ5

    ----------------------------------------------------------------------------------

    xof 0303txt 0032
    template Frame {
     <3d82ab46-62da-11cf-ab39-0020af71e433>
     [...]
    }

    template Matrix4x4 {
     <f6f23f45-7686-11cf-8f52-0040333594a3>
     array FLOAT matrix[16];
    }

    template FrameTransformMatrix {
     <f6f23f41-7686-11cf-8f52-0040333594a3>
     Matrix4x4 frameMatrix;
    }

    ------------------------------------------------------------------------------------------------------

    With this code below I'm getting overload till I decide to shut-down the app.

    Private Sub Button6_Click(sender As Object, e As EventArgs) Handles Button6.Click
    
            Dim instream As Stream = File.OpenRead(fileName)
            ' creating buffer to open stream
            Dim bufin As BufferedStream = New BufferedStream(instream)
            Dim myByte() As Byte = New Byte(128) {}
    
            For i = 0 To instream.Length - 1 'Step 2
                ' reading 128 bytes from file
                bufin.Read(myByte, 2, 15)
    
                Dim byteArray As Byte() = (myByte)
                ' Convert Byte array elements to Char values.
                BAToChar(byteArray, 0)
                'BAToChar(byteArray, i)
                BAToChar(byteArray, 1)
                BAToChar(byteArray, 3)
                BAToChar(byteArray, 5)
                BAToChar(byteArray, 7)
                BAToChar(byteArray, 9)
                BAToChar(byteArray, 11)
                BAToChar(byteArray, 13)
                BAToChar(byteArray, 15)
    
                ListBox1.Items.Add(BitConverter.ToString(byteArray))
            Next
    
        End Sub


    • Edited by Onlyme2013 Wednesday, March 18, 2020 7:13 PM
    Wednesday, March 18, 2020 7:09 PM
  • Only,

    Sorry, I dont really know much about it other than using that byte converter for wav files.

    Where did the x files come from? Seems to me it would be easier to open them in direct x editor for these type changes?

    I dont really know x files but I know how to make directx 9c work. What exactly is the problem there? Is that easier to get it working than to manually edit the files?

    If Julie has answered your original question you should mark the post as the answer using the mark as answer link at the bottom of Julie's post.

    I am not running you off just saying thats how it works.

    As far as the rest goes maybe someone else will have ideas?

    Wednesday, March 18, 2020 7:37 PM
  • @ tommytwotrain

    X file

    Not very familiar with forum, so thanks for the tip about Julie answer.I know X file being a deprecate file format, but some game engines still use it, so I need to dela with.

    @ all

    Can someone give me any clue on how to convert X file to txt human readable file via Visual basic.net?

    I'm developing a tool to change textures in X file and many others related file settings, but firts I need to convert it to txt file, make the changes and save it. Engine can work with both version of X file, anyway most of the 3d software export it as you can see in my X  file example above, When talking about 1 file manually way to change it might be a option, but nor when talking about several files.

    Thursday, March 19, 2020 6:23 AM
  • @ tommytwotrain

    X file

    Not very familiar with forum, so thanks for the tip about Julie answer.I know X file being a deprecate file format, but some game engines still use it, so I need to dela with.

    @ all

    Can someone give me any clue on how to convert X file to txt human readable file via Visual basic.net?

    I'm developing a tool to change textures in X file and many others related file settings, but firts I need to convert it to txt file, make the changes and save it. Engine can work with both version of X file, anyway most of the 3d software export it as you can see in my X  file example above, When talking about 1 file manually way to change it might be a option, but nor when talking about several files.

    I have an example.

    The example includes and runs this tiger.x mesh (image below). You have probably seen it before it is part of the SDK and fairly famous in the day.

    So you see in the project how the mesh file works if you want.

    Seems you can open a file with directx as the example and then modify and save it???

    Basically make an editor. Then make something that will do a batch of files.

    I am not saying it will be easy or that I could do it.

    Or perhaps you can use the example to just open a .x file and then write a text file of the mesh data as text like you are talking???

    Saving to an X File (Legacy) (Direct3D 9)

    I am not going to leave the project on my site. Let me know if you to try it.

    BTW I use Dx 9c because it will run on vb.net as shown. Other newer versions need other VS langs like WPF.




    Thursday, March 19, 2020 8:50 AM
  • PS You have to tell your virus checker to trust the vs project etc.

    Here is the code for those that cant use the downloaded project due to whatever. I am going to remove the project from the web site eventually.

    This is from the MS SDK of days past. You also need to set up the project for directx as shown here.

    '-----------------------------------------------------------------------------
    ' File: Meshes.vb
    '
    ' Desc: For advanced geometry, most apps will prefer to load pre-authored
    '       meshes from a file. Fortunately, when using meshes, D3DX does most of
    '       the work for this, parsing a geometry file and creating vertx buffers
    '       (and index buffers) for us. This tutorial shows how to use a D3DXMESH
    '       object, including loading it from a file and rendering it. One thing
    '       D3DX does not handle for us is the materials and textures for a mesh,
    '       so note that we have to handle those manually.
    '
    '       Note: one advanced (but nice) feature that we don't show here is that
    '       when cloning a mesh we can specify the FVF. So, regardless of how the
    '       mesh was authored, we can add/remove normals, add more texture
    '       coordinate sets (for multi-texturing), etc.
    '
    ' Copyright (c) 2000-2002 Microsoft Corporation. All rights reserved.
    '-----------------------------------------------------------------------------
    Imports System
    Imports System.Drawing
    Imports System.ComponentModel
    Imports System.Windows.Forms
    Imports System.IO
    Imports Microsoft.DirectX
    Imports Microsoft.DirectX.Direct3D
    Imports Direct3D = Microsoft.DirectX.Direct3D
    
    
    Namespace MeshesTutorial
        Public Class Meshes
            Inherits Form
    
            Private device As device = Nothing ' Our rendering device
            Private mesh As mesh = Nothing ' Our mesh object in sysmem
            Private meshMaterials() As Direct3D.Material ' Materials for our mesh
            Private meshTextures() As Texture ' Textures for our mesh
            Private presentParams As New PresentParameters()
            Private pause As Boolean = False
    
    
            Public Sub New()
                ' Set the initial size of our form
                Me.ClientSize = New System.Drawing.Size(400, 300)
                ' And it's caption
                Me.Text = "Direct3D Tutorial 6 - Meshes"
            End Sub 'New
    
    
            Function InitializeGraphics() As Boolean
                ' Get the current desktop display mode, so we can set up a back
                ' buffer of the same format
                Try
                    ' Set up the structure used to create the D3DDevice. Since we are now
                    ' using more complex geometry, we will create a device with a zbuffer.
                    presentParams.Windowed = True
                    presentParams.SwapEffect = SwapEffect.Discard
                    presentParams.EnableAutoDepthStencil = True
                    presentParams.AutoDepthStencilFormat = DepthFormat.D16
    
                    ' Create the D3DDevice
                    device = New Device(0, DeviceType.Hardware, Me, CreateFlags.SoftwareVertexProcessing, presentParams)
                    AddHandler device.DeviceReset, AddressOf Me.OnResetDevice
                    Me.OnResetDevice(device, Nothing)
                    pause = False
                Catch e As DirectXException
                    Return False
                End Try
                Return True
            End Function 'InitializeGraphics
    
            Public Sub OnResetDevice(ByVal sender As Object, ByVal e As EventArgs)
                Dim materials As ExtendedMaterial() = Nothing
    
                ' Set the directory up two to load the right data (since the default build location is bin\debug or bin\release
                Directory.SetCurrentDirectory((Application.StartupPath + "\..\"))
                Dim dev As Device = CType(sender, Device)
                ' Turn on the zbuffer
                dev.RenderState.ZBufferEnable = True
    
                ' Turn on ambient lighting 
                dev.RenderState.Ambient = System.Drawing.Color.White
                ' Load the mesh from the specified file
                mesh = mesh.FromFile("tiger.x", MeshFlags.SystemMemory, device, materials)
    
    
                If meshTextures Is Nothing Then
                    ' We need to extract the material properties and texture names 
                    meshTextures = New Texture(materials.Length) {}
                    meshMaterials = New Direct3D.Material(materials.Length) {}
                    Dim i As Integer
                    For i = 0 To materials.Length - 1
                        meshMaterials(i) = materials(i).Material3D
                        ' Set the ambient color for the material (D3DX does not do this)
                        meshMaterials(i).Ambient = meshMaterials(i).Diffuse
    
                        ' Create the texture
                        meshTextures(i) = TextureLoader.FromFile(dev, materials(i).TextureFilename)
                    Next i
                End If
            End Sub 'OnResetDevice
    
            Sub SetupMatrices()
                ' For our world matrix, we will just leave it as the identity
                device.Transform.World = Matrix.RotationY((Environment.TickCount / 1000.0F))
    
                ' Set up our view matrix. A view matrix can be defined given an eye point,
                ' a point to lookat, and a direction for which way is up. Here, we set the
                ' eye five units back along the z-axis and up three units, look at the 
                ' origin, and define "up" to be in the y-direction.
                device.Transform.View = Matrix.LookAtLH(New Vector3(0.0F, 3.0F, -5.0F), New Vector3(0.0F, 0.0F, 0.0F), New Vector3(0.0F, 1.0F, 0.0F))
    
                ' For the projection matrix, we set up a perspective transform (which
                ' transforms geometry from 3D view space to 2D viewport space, with
                ' a perspective divide making objects smaller in the distance). To build
                ' a perpsective transform, we need the field of view (1/4 pi is common),
                ' the aspect ratio, and the near and far clipping planes (which define at
                ' what distances geometry should be no longer be rendered).
                device.Transform.Projection = Matrix.PerspectiveFovLH(CSng(Math.PI / 4), 1.0F, 1.0F, 100.0F)
            End Sub 'SetupMatrices
    
            Private Sub Render()
                If device Is Nothing Then
                    Return
                End If
                If pause Then
                    Return
                End If
                'Clear the backbuffer to a blue color 
                device.Clear(ClearFlags.Target Or ClearFlags.ZBuffer, System.Drawing.Color.Blue, 1.0F, 0)
                'Begin the scene
                device.BeginScene()
                ' Setup the world, view, and projection matrices
                SetupMatrices()
    
                ' Meshes are divided into subsets, one for each material. Render them in
                ' a loop
                Dim i As Integer
                For i = 0 To meshMaterials.Length - 1
                    ' Set the material and texture for this subset
                    device.Material = meshMaterials(i)
                    device.SetTexture(0, meshTextures(i))
    
                    ' Draw the mesh subset
                    mesh.DrawSubset(i)
                Next i
    
                'End the scene
                device.EndScene()
                device.Present()
            End Sub 'Render
    
    
            Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
                Me.Render() ' Render on painting
            End Sub 'OnPaint
    
            Protected Overrides Sub OnKeyPress(ByVal e As System.Windows.Forms.KeyPressEventArgs)
                If Asc(e.KeyChar) = CInt(System.Windows.Forms.Keys.Escape) Then
                    Me.Dispose() ' Esc was pressed
                End If
            End Sub 'OnKeyPress
    
            Protected Overrides Sub OnResize(ByVal e As System.EventArgs)
                pause = (Me.WindowState = FormWindowState.Minimized Or Not Me.Visible)
            End Sub 'OnResize
    
            '/ <summary>
            '/ The main entry point for the application.
            '/ </summary>
            Shared Sub Main()
                Dim frm As New Meshes()
                If Not frm.InitializeGraphics() Then ' Initialize Direct3D
                    MessageBox.Show("Could not initialize Direct3D.  This tutorial will exit.")
                    Return
                End If
                frm.Show()
    
                While frm.Created
                    frm.Render()
                    Application.DoEvents()
                End While
            End Sub 'Main
    
            Private Sub InitializeComponent()
                '
                'Meshes
                '
                Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
                Me.ClientSize = New System.Drawing.Size(292, 266)
                Me.Name = "Meshes"
    
            End Sub
    
            Private Sub Meshes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            End Sub
        End Class 'Meshes
    End Namespace 'MeshesTutorial


    • Edited by tommytwotrain Thursday, March 19, 2020 9:31 AM
    • Marked as answer by Onlyme2013 Thursday, March 19, 2020 9:32 PM
    Thursday, March 19, 2020 9:29 AM
  • As commented above my great issue is "I've failing installing DirectX sdk on my pc" so I'm not able to use that's libs or to reference them , I already saw that stuff and it is realy the answer to my isuues, but I should to go for a different way, I've need some code to convert X file format to TxT format.

    That code is mostly to create a X file editor, and yes you can open/read/write X files, that mean the 3d mesh nor the file itself to make changes and save it, via vb.net.

    Anyway a lot of thanks for the support, I really appreciate it. :)

    Thursday, March 19, 2020 6:52 PM
  • I come back to say that I was completely wrong, being able to or not being able to reference libraries have nothing to do with having or not having DirectX sdk installed, the link you have provided has clarified the concept for me.
    Now I'm going to explore this path and I'm not sure where to start, but I'm sure we'll learn something along the way.
    I will come back with fresh news, at least I hope so. :)
    Thursday, March 19, 2020 7:20 PM