<commit_before>[cmft](https://github.com/dariomanesku/cmft) - cubemap filtering tool
=====================================================================

Cross-platform open-source command-line cubemap filtering tool.

It reaches very fast processing speeds by utilizing both multi-core CPU and OpenCL GPU at the same time! (check [perfomance charts](https://github.com/dariomanesku/cmft#performance))

Download
--------

<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/windows.png" height="16px">  [cmft - Windows 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_win64.zip)<br />
<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/linux.png"   height="16px">  [cmft - Linux 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_lin64.zip) (updated: 16. Mar 2015)<br />
<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/apple.png"   height="16px">  [cmft - OSX 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_osx64.zip) (updated: 16. Mar 2015)<br />
*In case you need 32bit binaries, compile from source.*<br />


![cmft-cover](https://github.com/dariomanesku/cmft/raw/master/res/cmft_cover.jpg)

- Supported input/output formats: \*.dds, \*.ktx, \*.hdr, \*.tga.
- Supported input/output types: cubemap, cube cross, latlong, face list, horizontal and vertical strip.


See it in action - [here](https://github.com/dariomanesku/cmftStudio)
------------
Screenshot from [cmftStudio](https://github.com/dariomanesku/cmftStudio):
![cmftStudioScreenshot](https://raw.githubusercontent.com/dariomanesku/cmftStudio/master/screenshots/cmftStudio_osx0.jpg)


Remark !
--------

- If you are running OpenCL procesing on the same GPU that it connected to your monitor you may experience the following problem: when you are processing big cubemaps (~1024 face size) with small 'glossScale' parameter (<7 for example), OpenCL kernels may take a long time to execute and that may cause the operative system to step in and kill the display/gpu driver in the middle of processing! In case this happens, the processing will continue on CPU. You will get the expected results but the processing will run slower. To avoid this you can:
    - Use smaller input size. (this is crucial!)
    - Choose a bigger 'glossScale' parameter.
    - Use a workaround on Windows: increase the TdrDelay or modify the TdrLevel in the registry and restart the machine. More details here: http://msdn.microsoft.com/en-us/library/windows/hardware/ff569918%28v=vs.85%29.aspx
    - Run cmft on a faster GPU.
    - Run cmft on a GPU that is not connected to the monitor.


Building
--------

	git clone git://github.com/dariomanesku/cmft.git
	cd cmft
	make

- After calling `make`, *\_projects* folder will be created with all supported project files. Deleting *\_projects* folder is safe at any time.<br \>
- All compiler generated files will be in *\_build* folder. Again, deleting *\_build* folder is safe at any time.<br \>

### Windows

- Visual Studio solutions can be found in *\_projects/vs20XX/*.<br \>

### Linux

- Makefile can be found in *\_projects/gmake-linux/*.<br \>
- Project can be build from the root directory by running `make linux-release64` (or similar).<br \>
- Vim users can source *.ide.vim* and make use of Build() and Execute() functions from inside Vim.<br \>
- Remember to edit CMFT variable in *runtime/cmft_lin.sh* accordingly to match the build configuration you are using.<br \>

### OS X

- XCode
  - XCode solution can be found in *\_projects/xcode4/*.<br \><commit_msg>Readme update.<commit_after>[cmft](https://github.com/dariomanesku/cmft) - cubemap filtering tool
=====================================================================

Cross-platform open-source command-line cubemap filtering tool.

It reaches very fast processing speeds by utilizing both multi-core CPU and OpenCL GPU at the same time! (check [perfomance charts](https://github.com/dariomanesku/cmft#performance))

Download
--------

<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/windows.png" height="16px">  [cmft - Windows 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_win64.zip)<br />
<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/linux.png"   height="16px">  [cmft - Linux 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_lin64.zip) (updated: 16. Mar 2015)<br />
<img src="https://github.com/dariomanesku/cmft-bin/raw/master/res/apple.png"   height="16px">  [cmft - OSX 64bit](https://github.com/dariomanesku/cmft-bin/raw/master/cmft_osx64.zip) (updated: 16. Mar 2015)<br />
*In case you need 32bit binaries, compile from source.*<br />


![cmft-cover](https://github.com/dariomanesku/cmft/raw/master/res/cmft_cover.jpg)

- Supported input/output formats: \*.dds, \*.ktx, \*.hdr, \*.tga.
- Supported input/output types: cubemap, cube cross, latlong, face list, horizontal and vertical strip.


See it in action - [here](https://github.com/dariomanesku/cmftStudio)
------------
Screenshot from [cmftStudio](https://github.com/dariomanesku/cmftStudio):
![cmftStudioScreenshot](https://raw.githubusercontent.com/dariomanesku/cmftStudio/master/screenshots/cmftStudio_osx0.jpg)


Remark !
--------

- If you are running OpenCL procesing on the same GPU that it connected to your monitor you may experience the following problem: when you are processing big cubemaps (~1024 face size) with small 'glossScale' parameter (<7 for example), OpenCL kernels may take a long time to execute and that may cause the operative system to step in and kill the display/gpu driver in the middle of processing! In case this happens, the processing will continue on CPU. You will get the expected results but the processing will run slower. To avoid this you can:
    - Use smaller input size. (this is crucial!)
    - Choose a bigger 'glossScale' parameter.
    - Use a workaround on Windows: increase the TdrDelay or modify the TdrLevel in the registry and restart the machine. More details here: http://msdn.microsoft.com/en-us/library/windows/hardware/ff569918%28v=vs.85%29.aspx
    - Run cmft on a faster GPU.
    - Run cmft on a GPU that is not connected to the monitor.


Building
--------

	git clone git://github.com/dariomanesku/cmft.git
	cd cmft
	make

- After calling `make`, *\_projects* folder will be created with all supported project files. Deleting *\_projects* folder is safe at any time.<br \>
- All compiler generated files will be in *\_build* folder. Again, deleting *\_build* folder is safe at any time.<br \>

### Windows

- Visual Studio
  - Visual Studio solution will be located in *\_projects/vs20XX/*.
- MinGW
  - MinGW Makefile will be located in *\_projects/gmake-mingw-gcc/*.
  - Project can be build from the root directory by running `make mingw-gcc-release64` (or similar).
- Remember to edit CMFT variable in *runtime/cmft_win.bat* accordingly to match the build configuration you are using.

### Linux

- Makefile will be loacted in *\_projects/gmake-linux/*.<br \>
- Project can be build from the root directory by running `make linux-release64` (or similar).<br \>
- Vim users can source *.ide.vim* and make use of Build() and Execute() functions from inside Vim.<br \>
- Remember to edit CMFT variable in *runtime/cmft_lin.sh* accordingly to match the build configuration you are using.<br \>

### OS X

- XCode
  - XCode solution will be located in *\_projects/xcode4/*.<br \>
{'fraction_non_alphanumeric': 0.1405703524347592, 'fraction_numerical': 0.015065913370998116, 'mean_word_length': 4.006734006734007, 'pattern_counts': {'":': 0, '<': 34, '<?xml version=': 0, '>': 32, 'https://': 24, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6129559', 'n_tokens_mistral': 2430, 'n_tokens_neox': 2256, 'n_words': 767}