Это всё прикольно, но меня интересуют более банальные вещи в плане применения ColorRamp:
Цитировать...ибо Блендер не поддерживает colormap более 32 строкПроверил, точно так и есть... можно использовать только 32 маркера - это максимум 15 сегментов градиента GIMP при условии, что правый и левый маркеры в смежных сегментах одного и того же цвета, иначе 11 сегментов максимум. Благодарю за подсказку. На самом деле это хреново для Блендера... хотя, большинство ggr должны нормально импортироваться в линейном пространстве, думаю...
...ибо Блендер не поддерживает colormap более 32 строк
... наверное 32 выбрано в качестве компромисса ...
... сделал правки, работает ...
... но в коде есть такой циклы по количеству colorband и очевидно чем больше элементов (сегментов) тем дольше обсчет ...
Цитировать... наверное 32 выбрано в качестве компромисса ...В принципе, этого достаточно в большинстве случаев...Цитировать... сделал правки, работает ...Это уже радует Цитировать... но в коде есть такой циклы по количеству colorband и очевидно чем больше элементов (сегментов) тем дольше обсчет ...Жаль, что разработчики не сделали крутилки для поддержки более чем 32 маркеров градиента в пользовательских настройках. Может, со временем прикрутят...
[0.004 rgbft <1.000,1.000,1.000,0.000,0.974>] [0.008 rgbft <0.694,0.694,1.000,0.000,0.993>] [0.012 rgbft <0.863,0.778,1.000,0.000,0.963>] [0.016 rgbft <0.821,0.821,1.000,0.000,0.988>] [0.020 rgbft <0.877,0.877,1.000,0.000,0.987>] [0.023 rgbft <1.000,1.000,1.000,0.000,0.988>] [0.027 rgbft <0.938,0.907,1.000,0.000,0.957>] [0.031 rgbft <0.907,0.907,1.000,0.000,0.934>] [0.035 rgbft <1.000,1.000,1.000,0.000,0.987>] [0.039 rgbft <0.818,0.818,1.000,0.000,0.958>] [0.043 rgbft <0.889,0.840,1.000,0.000,0.856>] [0.047 rgbft <0.887,0.887,1.000,0.000,0.854>] [0.051 rgbft <0.933,0.867,1.000,0.000,0.985>] [0.055 rgbft <0.939,0.879,1.000,0.000,0.977>] [0.059 rgbft <0.907,0.880,1.000,0.000,0.902>] [0.063 rgbft <0.926,0.877,1.000,0.000,0.939>] [0.066 rgbft <0.915,0.887,1.000,0.000,0.945>] [0.070 rgbft <0.907,0.907,1.000,0.000,0.952>] [0.074 rgbft <0.915,0.891,1.000,0.000,0.922>] [0.078 rgbft <0.935,0.882,1.000,0.000,0.929>] [0.082 rgbft <0.914,0.914,1.000,0.000,0.926>] [0.086 rgbft <0.887,0.887,1.000,0.000,0.898>] [0.090 rgbft <0.930,0.860,1.000,0.000,0.939>] [0.094 rgbft <0.908,0.874,1.000,0.000,0.894>] [0.098 rgbft <0.914,0.860,1.000,0.000,0.904>] [0.102 rgbft <0.914,0.849,1.000,0.000,0.904>] [0.105 rgbft <0.926,0.914,1.000,0.000,0.909>] [0.109 rgbft <0.932,0.887,1.000,0.000,0.881>] [0.113 rgbft <0.926,0.894,1.000,0.000,0.863>] [0.117 rgbft <0.910,0.881,1.000,0.000,0.729>] [0.121 rgbft <0.908,0.862,1.000,0.000,0.911>] [0.125 rgbft <0.914,0.849,1.000,0.000,0.920>] [0.129 rgbft <0.910,0.881,1.000,0.000,0.889>] [0.133 rgbft <0.960,0.909,1.000,0.000,0.899>] [0.137 rgbft <0.903,0.903,1.000,0.000,0.908>] [0.141 rgbft <0.908,0.851,1.000,0.000,0.883>] [0.145 rgbft <0.914,0.860,1.000,0.000,0.898>] [0.148 rgbft <0.928,0.867,1.000,0.000,0.896>] [0.152 rgbft <0.928,0.897,1.000,0.000,0.911>] [0.156 rgbft <0.897,0.867,1.000,0.000,0.931>] [0.160 rgbft <0.942,0.909,1.000,0.000,0.627>] [0.164 rgbft <0.894,0.894,1.000,0.000,0.909>] [0.168 rgbft <0.914,0.849,1.000,0.000,0.912>] [0.172 rgbft <0.929,0.882,1.000,0.000,0.733>] [0.176 rgbft <0.937,0.881,1.000,0.000,0.749>] [0.180 rgbft <0.914,0.914,1.000,0.000,0.913>] [0.184 rgbft <0.932,0.901,1.000,0.000,0.659>] [0.188 rgbft <0.882,0.882,1.000,0.000,0.951>] [0.191 rgbft <0.914,0.914,1.000,0.000,0.942>] [0.195 rgbft <0.931,0.835,1.000,0.000,0.951>] [0.199 rgbft <0.943,0.943,1.000,0.000,0.241>] [0.203 rgbft <0.920,0.907,1.000,0.000,0.969>] [0.207 rgbft <0.914,0.914,1.000,0.000,0.966>] [0.211 rgbft <0.946,0.903,1.000,0.000,0.938>] [0.215 rgbft <0.960,0.919,1.000,0.000,0.756>] [0.219 rgbft <0.939,0.891,1.000,0.000,0.908>] [0.223 rgbft <0.929,1.000,1.000,0.000,0.944>] [0.227 rgbft <0.952,0.927,1.000,0.000,0.955>] [0.230 rgbft <0.914,0.914,1.000,0.000,0.962>] [0.234 rgbft <0.963,0.931,1.000,0.000,0.749>] [0.238 rgbft <0.930,0.906,1.000,0.000,0.894>] [0.242 rgbft <0.934,0.880,1.000,0.000,0.940>] [0.246 rgbft <0.968,0.937,1.000,0.000,0.940>] [0.250 rgbft <0.932,0.907,1.000,0.000,0.912>] [0.254 rgbft <0.942,0.910,1.000,0.000,0.901>] [0.258 rgbft <0.979,0.949,1.000,0.000,0.886>] [0.262 rgbft <0.990,0.958,1.000,0.000,0.845>] [0.266 rgbft <1.000,0.932,1.000,0.000,0.820>] [0.270 rgbft <1.000,0.954,0.954,0.000,0.273>] [0.273 rgbft <1.000,0.957,0.957,0.000,0.307>] [0.277 rgbft <1.000,0.950,0.939,0.000,0.220>] [0.281 rgbft <1.000,0.958,0.943,0.000,0.275>] [0.285 rgbft <1.000,0.953,0.933,0.000,0.402>] [0.289 rgbft <1.000,0.961,0.933,0.000,0.502>] [0.293 rgbft <1.000,0.947,0.931,0.000,0.366>] [0.297 rgbft <1.000,0.942,0.934,0.000,0.383>] [0.301 rgbft <1.000,0.955,0.922,0.000,0.317>] [0.305 rgbft <1.000,0.953,0.925,0.000,0.534>] [0.309 rgbft <1.000,0.953,0.937,0.000,0.482>] [0.313 rgbft <1.000,0.945,0.926,0.000,0.496>] [0.316 rgbft <1.000,0.957,0.942,0.000,0.438>] [0.320 rgbft <1.000,0.946,0.946,0.000,0.441>] [0.324 rgbft <1.000,0.966,0.951,0.000,0.393>] [0.328 rgbft <1.000,0.950,0.939,0.000,0.460>] [0.332 rgbft <1.000,0.954,0.928,0.000,0.383>] [0.336 rgbft <1.000,0.951,0.951,0.000,0.287>] [0.340 rgbft <1.000,0.948,0.940,0.000,0.403>] [0.344 rgbft <1.000,0.955,0.944,0.000,0.499>] [0.348 rgbft <1.000,0.962,0.950,0.000,0.484>] [0.352 rgbft <1.000,0.955,0.944,0.000,0.319>] [0.355 rgbft <1.000,0.956,0.967,0.000,0.465>] [0.359 rgbft <1.000,0.949,0.953,0.000,0.464>] [0.363 rgbft <1.000,0.957,0.946,0.000,0.353>] [0.367 rgbft <1.000,0.956,0.952,0.000,0.254>] [0.371 rgbft <1.000,0.967,0.944,0.000,0.272>] [0.375 rgbft <1.000,0.951,0.917,0.000,0.250>] [0.379 rgbft <1.000,0.958,0.973,0.000,0.340>] [0.383 rgbft <1.000,0.964,0.958,0.000,0.338>] [0.387 rgbft <1.000,0.953,0.949,0.000,0.304>] [0.391 rgbft <1.000,0.945,0.917,0.000,0.066>] [0.395 rgbft <1.000,0.950,0.891,0.000,0.166>] [0.398 rgbft <1.000,0.944,0.896,0.000,0.144>] [0.402 rgbft <1.000,0.947,0.900,0.000,0.216>] [0.406 rgbft <1.000,0.950,0.902,0.000,0.000>] [0.410 rgbft <1.000,0.947,0.900,0.000,0.221>] [0.414 rgbft <1.000,0.948,0.917,0.000,0.151>] [0.418 rgbft <1.000,0.958,0.924,0.000,0.000>] [0.422 rgbft <1.000,0.940,0.895,0.000,0.197>] [0.426 rgbft <1.000,0.945,0.907,0.000,0.296>] [0.430 rgbft <1.000,0.952,0.914,0.000,0.439>] [0.434 rgbft <1.000,0.943,0.903,0.000,0.233>] [0.438 rgbft <1.000,0.947,0.912,0.000,0.000>] [0.441 rgbft <1.000,0.941,0.907,0.000,0.051>] [0.445 rgbft <1.000,0.961,0.934,0.000,0.136>] [0.449 rgbft <1.000,0.962,0.927,0.000,0.114>] [0.453 rgbft <1.000,0.963,0.928,0.000,0.000>] [0.457 rgbft <1.000,1.000,1.000,0.000,0.116>] [0.461 rgbft <1.000,0.958,0.931,0.000,0.157>] [0.465 rgbft <1.000,0.955,0.931,0.000,0.130>] [0.469 rgbft <1.000,0.955,0.926,0.000,0.078>] [0.473 rgbft <1.000,0.941,0.900,0.000,0.000>] [0.477 rgbft <1.000,0.943,0.914,0.000,0.114>] [0.480 rgbft <1.000,0.955,0.937,0.000,0.144>] [0.484 rgbft <1.000,0.965,0.942,0.000,0.108>] [0.488 rgbft <1.000,0.968,0.954,0.000,0.000>] [0.492 rgbft <1.000,1.000,1.000,0.000,0.063>] [0.496 rgbft <1.000,0.976,0.966,0.000,0.000>] [0.500 rgbft <1.000,0.963,0.955,0.000,0.000>] [0.504 rgbft <1.000,0.968,0.941,0.000,0.147>] [0.508 rgbft <1.000,0.947,0.918,0.000,0.184>] [0.512 rgbft <1.000,0.948,0.917,0.000,0.102>] [0.516 rgbft <1.000,0.957,0.922,0.000,0.110>] [0.520 rgbft <1.000,0.946,0.905,0.000,0.132>] [0.523 rgbft <1.000,0.956,0.921,0.000,0.138>] [0.527 rgbft <1.000,0.959,0.929,0.000,0.193>] [0.531 rgbft <1.000,0.955,0.927,0.000,0.110>] [0.535 rgbft <1.000,0.953,0.930,0.000,0.080>] [0.539 rgbft <1.000,0.965,0.936,0.000,0.193>] [0.543 rgbft <1.000,0.960,0.937,0.000,0.116>] [0.547 rgbft <1.000,0.956,0.933,0.000,0.248>] [0.551 rgbft <1.000,0.963,0.948,0.000,0.225>] [0.555 rgbft <1.000,0.966,0.958,0.000,0.186>] [0.559 rgbft <1.000,0.962,0.946,0.000,0.140>] [0.563 rgbft <1.000,0.968,0.965,0.000,0.242>] [0.566 rgbft <1.000,0.968,0.960,0.000,0.288>] [0.570 rgbft <1.000,0.962,0.946,0.000,0.148>] [0.574 rgbft <1.000,0.964,0.952,0.000,0.217>] [0.578 rgbft <1.000,0.968,0.959,0.000,0.184>] [0.582 rgbft <1.000,0.964,0.953,0.000,0.123>] [0.586 rgbft <1.000,0.965,0.954,0.000,0.302>] [0.590 rgbft <1.000,0.957,0.941,0.000,0.187>] [0.594 rgbft <1.000,0.969,0.958,0.000,0.144>] [0.598 rgbft <1.000,0.966,0.946,0.000,0.249>] [0.602 rgbft <1.000,0.961,0.946,0.000,0.283>] [0.605 rgbft <1.000,0.963,0.946,0.000,0.303>] [0.609 rgbft <1.000,0.963,0.951,0.000,0.242>] [0.613 rgbft <1.000,0.957,0.951,0.000,0.000>] [0.617 rgbft <1.000,0.968,0.965,0.000,0.268>] [0.621 rgbft <1.000,0.973,0.978,0.000,0.220>] [0.625 rgbft <1.000,0.974,0.983,0.000,0.206>] [0.629 rgbft <1.000,0.997,1.000,0.000,0.193>] [0.633 rgbft <0.994,0.972,1.000,0.000,0.000>] [0.637 rgbft <0.994,0.967,1.000,0.000,0.363>] [0.641 rgbft <0.975,0.963,1.000,0.000,0.000>] [0.645 rgbft <0.987,0.957,1.000,0.000,0.625>] [0.648 rgbft <1.000,0.963,0.981,0.000,0.570>] [0.652 rgbft <1.000,0.950,0.960,0.000,1.000>] [0.656 rgbft <0.944,0.921,1.000,0.000,1.000>] [0.660 rgbft <0.923,0.900,1.000,0.000,0.931>] [0.664 rgbft <0.870,0.870,1.000,0.000,0.934>] [0.668 rgbft <0.903,0.903,1.000,0.000,0.925>] [0.672 rgbft <0.910,0.887,1.000,0.000,1.000>] [0.676 rgbft <0.889,0.880,1.000,0.000,0.923>] [0.680 rgbft <0.917,0.893,1.000,0.000,0.976>] [0.684 rgbft <0.877,0.889,1.000,0.000,0.963>] [0.688 rgbft <0.924,0.924,1.000,0.000,1.000>] [0.691 rgbft <0.877,0.868,1.000,0.000,0.826>] [0.695 rgbft <0.912,0.888,1.000,0.000,0.847>] [0.699 rgbft <0.890,0.899,1.000,0.000,0.540>] [0.703 rgbft <0.922,0.915,1.000,0.000,0.889>] [0.707 rgbft <0.929,0.910,1.000,0.000,0.859>] [0.711 rgbft <0.936,0.936,1.000,0.000,0.882>] [0.715 rgbft <0.936,0.925,1.000,0.000,0.843>] [0.719 rgbft <0.940,0.935,1.000,0.000,0.670>] [0.723 rgbft <0.966,0.949,1.000,0.000,0.507>] [0.727 rgbft <0.946,0.935,1.000,0.000,0.292>] [0.730 rgbft <0.965,0.944,1.000,0.000,0.391>] [0.734 rgbft <0.963,0.952,1.000,0.000,0.441>] [0.738 rgbft <0.985,0.954,1.000,0.000,0.413>] [0.742 rgbft <0.981,0.959,1.000,0.000,0.281>] [0.746 rgbft <1.000,0.982,0.996,0.000,0.461>] [0.750 rgbft <0.977,0.953,1.000,0.000,0.554>] [0.754 rgbft <0.996,0.980,1.000,0.000,0.478>] [0.758 rgbft <1.000,0.963,1.000,0.000,0.582>] [0.762 rgbft <1.000,0.976,0.976,0.000,0.590>] [0.766 rgbft <1.000,0.965,0.970,0.000,0.552>] [0.770 rgbft <1.000,0.965,0.961,0.000,0.570>] [0.773 rgbft <1.000,0.965,0.974,0.000,0.614>] [0.777 rgbft <1.000,0.969,0.965,0.000,0.599>] [0.781 rgbft <1.000,0.954,0.962,0.000,0.632>] [0.785 rgbft <1.000,0.962,0.962,0.000,0.571>] [0.789 rgbft <1.000,0.970,0.965,0.000,0.626>] [0.793 rgbft <1.000,0.961,0.969,0.000,0.652>] [0.797 rgbft <1.000,0.948,0.952,0.000,0.657>] [0.801 rgbft <1.000,0.961,0.965,0.000,0.598>] [0.805 rgbft <1.000,0.961,0.969,0.000,0.618>] [0.809 rgbft <1.000,0.960,0.965,0.000,0.635>] [0.813 rgbft <1.000,0.969,0.956,0.000,0.641>] [0.816 rgbft <1.000,0.964,0.973,0.000,0.635>] [0.820 rgbft <1.000,0.956,0.956,0.000,0.648>] [0.824 rgbft <1.000,0.977,0.968,0.000,0.626>] [0.828 rgbft <1.000,0.956,0.960,0.000,0.671>] [0.832 rgbft <1.000,0.977,0.977,0.000,0.643>] [0.836 rgbft <1.000,0.973,0.977,0.000,0.661>] [0.840 rgbft <1.000,0.960,0.964,0.000,0.628>] [0.844 rgbft <1.000,0.968,0.968,0.000,0.651>] [0.848 rgbft <1.000,0.973,0.977,0.000,0.692>] [0.852 rgbft <1.000,0.983,0.987,0.000,0.632>] [0.855 rgbft <1.000,0.969,0.973,0.000,0.662>] [0.859 rgbft <1.000,0.968,0.968,0.000,0.621>] [0.863 rgbft <1.000,0.973,0.973,0.000,0.644>] [0.867 rgbft <1.000,0.961,0.961,0.000,0.661>] [0.871 rgbft <1.000,0.969,0.996,0.000,0.568>] [0.875 rgbft <1.000,0.975,0.996,0.000,0.620>] [0.879 rgbft <1.000,0.969,0.982,0.000,0.675>] [0.883 rgbft <1.000,0.969,0.964,0.000,0.634>] [0.887 rgbft <1.000,0.973,0.991,0.000,0.656>] [0.891 rgbft <1.000,0.948,0.977,0.000,1.000>] [0.895 rgbft <1.000,0.968,0.973,0.000,0.607>] [0.898 rgbft <1.000,0.984,1.000,0.000,0.611>] [0.902 rgbft <1.000,0.961,0.977,0.000,0.503>] [0.906 rgbft <1.000,0.976,1.000,0.000,0.592>] [0.910 rgbft <0.996,0.968,1.000,0.000,0.599>] [0.914 rgbft <0.992,0.972,1.000,0.000,0.648>] [0.918 rgbft <0.973,0.957,1.000,0.000,0.619>] [0.922 rgbft <0.970,0.958,1.000,0.000,0.538>] [0.926 rgbft <0.981,0.962,1.000,0.000,0.636>] [0.930 rgbft <0.977,0.954,1.000,0.000,0.591>] [0.934 rgbft <0.966,0.954,1.000,0.000,0.591>] [0.938 rgbft <0.869,0.897,1.000,0.000,0.538>] [0.941 rgbft <0.959,0.943,1.000,0.000,1.000>] [0.945 rgbft <0.952,0.952,1.000,0.000,1.000>] [0.949 rgbft <0.910,0.891,1.000,0.000,1.000>] [0.953 rgbft <0.968,0.968,1.000,0.000,1.000>] [0.957 rgbft <1.000,1.000,1.000,0.000,1.000>] [0.961 rgbft <1.000,0.891,1.000,0.000,1.000>] [0.965 rgbft <1.000,0.858,1.000,0.000,1.000>] [0.969 rgbft <1.000,0.858,1.000,0.000,1.000>] [0.973 rgbft <0.956,0.858,1.000,0.000,1.000>] [0.977 rgbft <1.000,0.858,1.000,0.000,1.000>] [0.980 rgbft <0.923,0.858,1.000,0.000,1.000>] [0.984 rgbft <1.000,0.858,1.000,0.000,1.000>] [0.988 rgbft <0.906,0.906,1.000,0.000,1.000>] [0.992 rgbft <0.889,0.889,1.000,0.000,1.000>]
Пользователь сам решит долго это или коротко. А, если юзер кольца Сатурна захочет затекстурить?
Спасибо sungreen за ссылку на "полуфабрикат"! Потихоньку врубаюсь...
GIMP GradientName: Basic Brown Blue20.000000 0.074689 0.149378 0.197000 0.154317 0.000000 1.000000 0.200000 0.156667 0.000000 1.000000 2 0 0 00.149378 0.382780 1.000000 0.000000 0.020942 1.000000 1.000000 0.000000 0.005784 0.295000 1.000000 3 0 0 0
[leonid@localhost ~]$ cd /home/leonid/python/wx[leonid@localhost wx]$ python ggr.py Basic-Brown-Blue.ggrTraceback (most recent call last): File "ggr.py", line 140, in <module> ggr = GimpGradient(sys.argv[1]) File "ggr.py", line 15, in __init__ self.read(f) File "ggr.py", line 39, in read seg.fn, seg.space) = map(float, line.split())ValueError: too many values to unpack
[leonid@localhost wx]$ python3 ggr.py Basic-Brown-Blue.ggrTraceback (most recent call last): File "ggr.py", line 140, in <module> ggr = GimpGradient(sys.argv[1]) File "ggr.py", line 15, in __init__ self.read(f) File "ggr.py", line 23, in read if isinstance(f, basestring):NameError: name 'basestring' is not defined[leonid@localhost wx]$
import bpy, math, sys, os def ggr_read(f): f = open(f) if f.readline().strip() != "GIMP Gradient": raise Exception("Not a GIMP gradient file") line = f.readline().strip() if not line.startswith("Name: "): raise Exception("Not a GIMP gradient file") name = line.split(": ", 1)[1] nsegs = int(f.readline().strip()) segs = [] for i in range(nsegs): d = f.readline().strip().split() seg = ((float(d[0]),(float(d[3]),float(d[4]),float(d[5]),float(d[6]))),(float(d[2]),(float(d[7]),float(d[8]),float(d[9]),float(d[10]))),float(d[1]),d[11],d[12]) segs.append(seg) return segs def cr_info(cr): print("Color Ramp info") print("interpolation: "+cr.interpolation) print("elements:") for ecr in cr.elements: print("("+str(ecr.position) + ",("+str(ecr.color[0])+", "+str(ecr.color[1])+", "+str(ecr.color[2])+", "+str(ecr.color[3])+"))") def ggr_info(ggr): print("GIMP Gradient:") for seg in ggr: print(seg[0]) def ggr2cr_simple(ggr,cb): for cb in reversed(cr.elements[1:]): cr.elements.remove(cb) cb = cr.elements[0] cb.position = ggr[0][0][0] cb.color = ggr[0][0][1] n = len(cr.elements) i = 1 for seg in ggr: if i>=n: cr.elements.new(1) cb = cr.elements[i] cb.position = seg[1][0] cb.color = seg[1][1] i = i+1#ggr = ggr_read("/home/sungreen/_PROGRAMM/gradients/Flare_Glow_Angular_1.ggr")#ggr = ggr_read("/home/sungreen/_PROGRAMM/gradients/Nauseating_Headache.ggr")ggr = ggr_read("/home/sungreen/_PROGRAMM/gradients/Skyline_polluted.ggr")ggr_info(ggr) cr = bpy.data.materials['Material'].node_tree.nodes['MyColorRamp'].color_rampcr_info(cr) ggr2cr_simple(ggr,cr)