Author Topic: STANDARD SURFACE material to CORONA MATERIAL  (Read 751 times)

2025-03-02, 16:10:46

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
So, I have come across bunch of models that I need to convert.
They come in with Standard Surface material. and I can switch do Arnold to render them and it looks good.
But The corona converter does not work, and the scene converter doesn't work either. and Im out of options.

The models comes from Kitbash3D.

Please help- do someone have a good workflow for this?

2025-03-03, 07:21:51
Reply #1

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
@Maru please Advice :)

2025-03-03, 11:37:09
Reply #2

Aram Avetisyan

  • Corona Team
  • Active Users
  • ****
  • Posts: 855
    • View Profile
Hi,

Are you referring to Scanline Standard (legacy) material?
If yes, they should be converted by Corona Converter, but they also should render with Corona.

If you can, share the scene (or simplified version) so we can check.
Aram Avetisyan | chaos-corona.com
Chaos Corona QA Specialist | contact us

2025-03-03, 12:28:28
Reply #3

pokoy

  • Active Users
  • **
  • Posts: 1975
    • View Profile
No, Standard Surface is Arnold's own physical material, it's not the (old) default Scanline Standard. It's pretty wide spread in the Maya world but not very common for 3dsmax (mostly because Max got Arnold so late and has much less users than in Maya).

2025-03-03, 13:20:52
Reply #4

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
Hi,

Are you referring to Scanline Standard (legacy) material?
If yes, they should be converted by Corona Converter, but they also should render with Corona.

If you can, share the scene (or simplified version) so we can check.

Hi, I have attached the file here. made a Dummed down and I didn't attach all texture files.

2025-03-03, 15:25:19
Reply #5

Avi

  • Corona Team
  • Active Users
  • ****
  • Posts: 750
    • View Profile
This is not possible to do using Corona converter or V-Ray converter. You will need to use some 3rd party script to first convert to V-Ray materials and then you can use Corona Converter to convert V-Ray material to Corona Materials.

https://www.scriptspot.com/3ds-max/scripts/v-raymax-converter-pro?page=16

I have logged this as a feature request in our system to be further reviewed by our devs.

 (Report ID=CMAX-1506)
Arpit Pandey | chaos-corona.com
3D Support Specialist - Corona | contact us

2025-03-03, 16:31:15
Reply #6

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
Thank you for your answer. that would be amazing

2025-03-04, 02:57:31
Reply #7

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
Ok, so update. the Vray script you sent work only half way, it does  convert the material but it does not convert the map.
so now I'm stuck with these "Arnold" Image maps instead of regular bitmap.

No idea where I should go from here. please advice

2025-03-04, 03:40:50
Reply #8

Digital Esthetics

  • Active Users
  • **
  • Posts: 32
    • View Profile
OK. so if anyone have this isse with bitmaps not converting.

I Build this script.

Code: [Select]
(
    -- Function to recursively replace Arnold Image and other textures with standard Bitmap or Corona Bitmap
    fn ConvertToBitmap texmap parentMat slotIndex useCorona = (
        if (texmap != undefined and classof texmap != CoronaBitmap and classof texmap != BitmapTexture) then (
            local texturePath = ""
           
            -- Handle Arnold Image maps
            if (classof texmap == ArnoldImage) then (
                if (isProperty texmap #filename and texmap.filename != undefined) then (
                    texturePath = texmap.filename
                )
            )
           
            -- Handle standard Bitmap textures
            else if (hasProperty texmap #filename and texmap.filename != undefined) then (
                texturePath = texmap.filename
            )
           
            -- Convert if a valid path is found
            if (texturePath != "" and doesFileExist texturePath) then (
                local newBitmap
                if (useCorona) then (
                    newBitmap = CoronaBitmap() -- Create an empty Corona Bitmap
                ) else (
                    newBitmap = BitmapTexture() -- Create an empty Standard Bitmap
                )
               
                newBitmap.filename = texturePath -- Assign the filename separately
               
                -- Debugging output
                format "Replacing texture: % with %\n" texturePath (if useCorona then "Corona Bitmap" else "Standard Bitmap")
               
                -- Replace the original map with the chosen Bitmap
                setSubTexmap parentMat slotIndex newBitmap
            )
           
            -- Recursively check nested maps
            for i = 1 to getNumSubTexmaps texmap do (
                ConvertToBitmap (getSubTexmap texmap i) texmap i useCorona
            )
        )
    )
   
    -- Process all scene materials
    for mat in scenematerials do (
        if (mat != undefined) then (
            for i = 1 to getNumSubTexmaps mat do (
                ConvertToBitmap (getSubTexmap mat i) mat i true -- Change to 'false' for standard Bitmap
            )
        )
    )
   
    -- Process Multi/Sub materials
    for obj in objects do (
        if (obj.material != undefined) then (
            if (classof obj.material == Multimaterial) then (
                for j = 1 to obj.material.numsubs do (
                    for i = 1 to getNumSubTexmaps obj.material.materialList[j] do (
                        ConvertToBitmap (getSubTexmap obj.material.materialList[j] i) obj.material.materialList[j] i true -- Change to 'false' for standard Bitmap
                    )
                )
            )
            else (
                for i = 1 to getNumSubTexmaps obj.material do (
                    ConvertToBitmap (getSubTexmap obj.material i) obj.material i true -- Change to 'false' for standard Bitmap
                )
            )
        )
    )
   
    messageBox "Conversion Completed! Check MaxScript Listener for details." title:"Success"
)

moderator's edit: wrapped the script into code tag.
« Last Edit: 2025-03-04, 09:54:01 by romullus »