Texture clamping is by default off, but for VDM textures this leads to several artifacts. - Clamping is done when the image is sampled and when the brush strenght is applied. - VDM textures have negative values that are lost due to clamping when clamping during sampling. This patch fixes this by changing the default clamping of newly created textures to not clamp anymore. Textures are mostly being used by sculpt brushes, where clamping is also implemented on brush level. Fix #104747
139 lines
3.0 KiB
C
139 lines
3.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
|
|
/** \file
|
|
* \ingroup DNA
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
/* Struct members on own line. */
|
|
/* clang-format off */
|
|
|
|
/* -------------------------------------------------------------------- */
|
|
/** \name Texture Struct
|
|
* \{ */
|
|
|
|
#define _DNA_DEFAULT_MTex \
|
|
{ \
|
|
.texco = TEXCO_UV, \
|
|
.mapto = MAP_COL, \
|
|
.object = NULL, \
|
|
.projx = PROJ_X, \
|
|
.projy = PROJ_Y, \
|
|
.projz = PROJ_Z, \
|
|
.mapping = MTEX_FLAT, \
|
|
.ofs[0] = 0.0, \
|
|
.ofs[1] = 0.0, \
|
|
.ofs[2] = 0.0, \
|
|
.size[0] = 1.0, \
|
|
.size[1] = 1.0, \
|
|
.size[2] = 1.0, \
|
|
.tex = NULL, \
|
|
.colormodel = 0, \
|
|
.r = 1.0, \
|
|
.g = 0.0, \
|
|
.b = 1.0, \
|
|
.k = 1.0, \
|
|
.def_var = 1.0, \
|
|
.blendtype = MTEX_BLEND, \
|
|
.colfac = 1.0, \
|
|
.norfac = 1.0, \
|
|
.varfac = 1.0, \
|
|
.dispfac = 0.2, \
|
|
.colspecfac = 1.0f, \
|
|
.mirrfac = 1.0f, \
|
|
.alphafac = 1.0f, \
|
|
.difffac = 1.0f, \
|
|
.specfac = 1.0f, \
|
|
.emitfac = 1.0f, \
|
|
.hardfac = 1.0f, \
|
|
.raymirrfac = 1.0f, \
|
|
.translfac = 1.0f, \
|
|
.ambfac = 1.0f, \
|
|
.colemitfac = 1.0f, \
|
|
.colreflfac = 1.0f, \
|
|
.coltransfac = 1.0f, \
|
|
.densfac = 1.0f, \
|
|
.scatterfac = 1.0f, \
|
|
.reflfac = 1.0f, \
|
|
.shadowfac = 1.0f, \
|
|
.zenupfac = 1.0f, \
|
|
.zendownfac = 1.0f, \
|
|
.blendfac = 1.0f, \
|
|
.timefac = 1.0f, \
|
|
.lengthfac = 1.0f, \
|
|
.clumpfac = 1.0f, \
|
|
.kinkfac = 1.0f, \
|
|
.kinkampfac = 1.0f, \
|
|
.roughfac = 1.0f, \
|
|
.twistfac = 1.0f, \
|
|
.padensfac = 1.0f, \
|
|
.lifefac = 1.0f, \
|
|
.sizefac = 1.0f, \
|
|
.ivelfac = 1.0f, \
|
|
.dampfac = 1.0f, \
|
|
.gravityfac = 1.0f, \
|
|
.fieldfac = 1.0f, \
|
|
.normapspace = MTEX_NSPACE_TANGENT, \
|
|
.brush_map_mode = MTEX_MAP_MODE_TILED, \
|
|
.random_angle = 2.0f * (float)M_PI, \
|
|
.brush_angle_mode = 0, \
|
|
} \
|
|
|
|
#define _DNA_DEFAULT_Tex \
|
|
{ \
|
|
.type = TEX_IMAGE, \
|
|
.ima = NULL, \
|
|
.stype = 0, \
|
|
.flag = TEX_CHECKER_ODD | TEX_NO_CLAMP, \
|
|
.imaflag = TEX_INTERPOL | TEX_MIPMAP | TEX_USEALPHA, \
|
|
.extend = TEX_REPEAT, \
|
|
.cropxmin = 0.0, \
|
|
.cropymin = 0.0, \
|
|
.cropxmax = 1.0, \
|
|
.cropymax = 1.0, \
|
|
.texfilter = TXF_EWA, \
|
|
.afmax = 8, \
|
|
.xrepeat = 1, \
|
|
.yrepeat = 1, \
|
|
.sfra = 1, \
|
|
.frames = 0, \
|
|
.offset = 0, \
|
|
.noisesize = 0.25, \
|
|
.noisedepth = 2, \
|
|
.turbul = 5.0, \
|
|
.nabla = 0.025, /* also in do_versions. */ \
|
|
.bright = 1.0, \
|
|
.contrast = 1.0, \
|
|
.saturation = 1.0, \
|
|
.filtersize = 1.0, \
|
|
.rfac = 1.0, \
|
|
.gfac = 1.0, \
|
|
.bfac = 1.0, \
|
|
/* newnoise: init. */ \
|
|
.noisebasis = 0, \
|
|
.noisebasis2 = 0, \
|
|
/* musgrave */ \
|
|
.mg_H = 1.0, \
|
|
.mg_lacunarity = 2.0, \
|
|
.mg_octaves = 2.0, \
|
|
.mg_offset = 1.0, \
|
|
.mg_gain = 1.0, \
|
|
.ns_outscale = 1.0, \
|
|
/* distnoise */ \
|
|
.dist_amount = 1.0, \
|
|
/* voronoi */ \
|
|
.vn_w1 = 1.0, \
|
|
.vn_w2 = 0.0, \
|
|
.vn_w3 = 0.0, \
|
|
.vn_w4 = 0.0, \
|
|
.vn_mexp = 2.5, \
|
|
.vn_distm = 0, \
|
|
.vn_coltype = 0, \
|
|
.preview = NULL, \
|
|
}
|
|
|
|
/** \} */
|
|
|
|
/* clang-format on */
|