cmftStudio - GUI counterpart of cmft - cross-platform open-source cubemap filtering

windows, linux, mac. Download or build at:

GUI counterpart of cmft - cross-platform open-source cubemap filtering tool.
It reaches very fast processing speeds by utilizing both multi-core CPU and OpenCL GPU at the same time!

Planned features

  • Add full screen support.
  • Add support for rendering transparent materials.
  • Add GGX specular filter and shading model.

Environment maps

Recommended tools

Similar projects

1 Like

sorry for my ignorance but can you explain what this is used for? Is this similar to Marmoset Toolbag for material building?

it seems to be similar to Marmoset albeit really basic so far.
which means ;Marmoset2 easily outperforms this by lengths.
but who knows what might happen to this.

nice found, this will be very helpfull.

Looks interesting but like comeinandburn asked already …
What can you do with it?

Nice find. It looks really useful, however I ran into quite a weird issue on Win7 x64. The software window simply refuses to go into fullscreen mode or change dimensions in any way. If I press the fullscreen window button the program goes into fullscreen for a brief second and then proceeds to jump around all over my screen. It is extremely weird.

EDIT: Ok so I looked at the config file. It seems that the window size is hardcoded into the program which is not exactly optimal in my opinion. Is there any way to set it to be dynamic?

EDIT2: Alright, fullscreen support is a planned feature I see now. It would also be nice if they could add support for more common image formats as well, such as JPEG, PNG, TIFF, TGA, etc.

Hello everyone, I am the author of cmft and cmftStudio and I can answer all your questions regarding these.


  • I added ‘Supported formats’ section in the README on the Github page.
  • The ‘WindowSize’ parameter from the config file is just the initial window size at startup. After that, application window is resizable. That ‘jumping around’ you are referring to might be fixed by a recent change I did, I am not completely sure as I don’t know what exact behavior you were experiencing. If it happens again, make a screenshot and open an issue on Github and I will look at it.

@Dito,comeinandburn: cmft/cmftStudio are tools for offline cubemap filtering. Filtered cubemaps are used in realtime applications and games for IBL. I can’t post links here since I am a new user to this forum, but have a look at ‘Knald Lys’ from the first post. That’s a commercial tool for the same purpose, so you can have a look at their screenshots and their explanations.

Other than that: mesh and texture loading, material authoring, model rendering, project saving/loading… etc. are all extra features. The basic idea was that you can see what are you getting out of cmft and also you can find out how to utilize filtered cubemaps in practice: how IBL shading looks, how various filter parameters affect shading…etc. You use cmftStudio to figure out what you exactly need and then you use its output for your game/application. All of that was not possible with AMD’s CubeMapGen, that I used before making cmftStudio, so it was a lot harder for people to ‘jump in’ and easily figure out how to use IBL in their game/application.

Also, let me mention that although these extra features make people associate cmftStudio with Marmoset Toolbag, it is not a competing software or a software for the same purpose. CmftStudio does not have the goal become something like Marmoset Toolbag. But, if you can use it for loading your assets, playing around, taking screenshots…etc. go for it :). After all, it costs you nothing so go ahead and experiment and do whatever you wish with it. :slight_smile:

Oh man, I’ve never even heard of .pvr or .ktx. Am I getting behind the times?

@dariomanesku I downloaded a new build and whatever you did seems to have fixed the problem. thank you.

I like your software very much. Even though you say that you have no intention to compete with Marmoset toolbag I still think that cmftStudio is a viable alternative, especially for Linux users who have no other similar programs, neither commercial or free. With just a few tweaks here and there it can be really great model visualization software, with features that even Marmoset don’t offer (cubemap filtering, incremental glossiness/metalness visualization, etc) which are very useful.

I have played around with it a little bit using some game assets from my studio (really wish I could show it) and I find it really awesome. I would really like a better file browser though. You can only back up in the folder directories until you come to the root folder of the hard-drive that cmftStudio is located in and I store all of my images on a separate HD which forced me to copy over the relevant textures to my C: drive to be able to access them. It would be great if we could actually open the native OS file-browser to navigate to our source-location, or even just an option to manually type in a directory in cmftStudio would be great.

It would also be a nice addition to be able to type in values into the slider inputs. It’s not a necessary feature to have but I found myself struggling to zero out values in the render options at times. I also wouldn’t mind seeing a screencapture button :stuck_out_tongue:

I am also gonna make an inquiry about the screen resolution and the UI. I am often limited to a 1366x768 display so UI elements often end up outside of my screen area, even important ones such as the “load” button for skyboxes. There is a lot of wasted screenspace in the menus and the buttons/text does not really benefit a lot from being so large (in my opinion) and even a simple scroller for all menu windows would help a lot.

And I’m also gonna mention the supported texture formats again.

@@NinthJake: Thanks a lot for feedback. Let’s go one by one.

  1. Yes, for Linux this is the only option and yes, I did invest quite some time into getting all the features up an running.
    This is the first release and it has a lot more features than I originally planned. So, I don’t know how will it evolve in the future. Time will tell. Also, user feedback will have a big influence.

  2. I went for this simple file browser because I needed something simple and cross-platform. Now that this file browser is not enough, I’ll integrate on first occasion. :slight_smile:

  3. Typing values into slider inputs cannot be easily achieved. The only thing I can do is to better adjust the range so you can more easily pick the desired value. Tell me exacltly which slider inputs caused you trouble.

  4. Scaling the interface down is not a simple problem but many users ask for it. I’ll have a look if that’s possible, but it won’t be today or tomorrow. It might be in a week or so or more. I added today full screen support for OSX and I have to add that as well to Windows and Linux these days.

  5. Which texture formats you need? Cubemap texture formats are a feature of cmft and 2D texture formats are a feature of bgfx ( Again, I don’t think that this will easily happen, but tell me what you need. I might at some point try to integrate some external asset loading library and fix the problem with that. But tell me which formats you need so that I know what to look for.

Thanks for this, it will be very educational as well as a good tool

@@NinthJake: one thing I missed, taking screenshots. The functionality is there, just not exposed through interface. Will add that as well.

I can’t import any object or images in the program,I can select the object but I can’t find any import button or something.
how can I import them?

@emaema, the button is labeled “Load” instead of “Import”. If your screen is smaller than 1920x1080 it may be outside of your monitor though.

@dariomanesku, sounds great. Thanks for listening to my suggestions :slight_smile:

About point #3, it was mostly trying to reset the values on the render options (I know about the reset button but it resets all the values where I just wanted to reset one specifically) but it is not really a big deal. Just a slight pet-peeve of mine.

About point #4, I didn’t think it was so much work to scale down the UI. If you could add a scrollbar to all windows it would solve most problems I think.

About point #5, I was thinking more about textures for the 3D models. Such as JPEG, PNG, TIFF and maybe TGA. The image formats for the environment is fine (for me at least, I only ever use .hdr)

Is it possible to add Skin shader and glass shader to cmftStudio ? I am glad to see that cmftStudio can support one object has many materials! God Job!

@@NinthJake: The problem with the interface is now fixed! It scales down appropriately, just as expected :slight_smile:

@@wuren: of course it’s possible, I just have to take some time and do it. At the moment that’s not a priority.

Wonderful news Dario. I will download and look at it right away :slight_smile:

EDIT: Unfortunately it seems the Windows 64bit build crashes right as I open it now. I tried it several times and re-downloaded it from your github but the problem persists.

Need some help!

First time load skybox and filter to radiance , irradiance, everything is perfect . But after you road second skybox and
hit filter skybox with cmft and then click process, The cumputer is crashed 100% for me.
But if you close cmftStudio and open load the new skybox ,everything is ok. Did anyone meet this !:confused:

@@NinthJake : I fixed the problem, it works now. It was a silly mistake, I uploaded the wrong binary.
Btw Windows still lacks full screen support, it works only on OSX and Linux for now. I’ll add that on first occasion. Gui scaling works everywhere.

@@wuren : Please give me more details, I can’t reproduce the error. Tell me on which platform are you on and give me the exact steps that lead to the problem. Example:

  1. Environment -> Add new.
  2. Browse skybox.
  3. Run radiance filter
  4. Do this, do that that…
  5. Crash!

Thanks in advance. :slight_smile:

Thank you Dario. It works now and scales properly, thank you so much :slight_smile:

I’m not really sure what you mean with the Windows version lacking fullscreen support though. It seems to be working fine for me :stuck_out_tongue: