patch [#28094] New equirectangular world texture mapping option
This commit is contained in:
@@ -181,6 +181,7 @@ typedef struct World {
|
|||||||
#define TEXCO_ANGMAP 64
|
#define TEXCO_ANGMAP 64
|
||||||
#define TEXCO_H_SPHEREMAP 256
|
#define TEXCO_H_SPHEREMAP 256
|
||||||
#define TEXCO_H_TUBEMAP 1024
|
#define TEXCO_H_TUBEMAP 1024
|
||||||
|
#define TEXCO_EQUIRECTMAP 2048
|
||||||
|
|
||||||
/* mapto */
|
/* mapto */
|
||||||
#define WOMAP_BLEND 1
|
#define WOMAP_BLEND 1
|
||||||
|
@@ -143,6 +143,7 @@ static void rna_def_world_mtex(BlenderRNA *brna)
|
|||||||
{TEXCO_GLOB, "GLOBAL", 0, "Global", "Use global coordinates for the texture coordinates (interior mist)"},
|
{TEXCO_GLOB, "GLOBAL", 0, "Global", "Use global coordinates for the texture coordinates (interior mist)"},
|
||||||
{TEXCO_ANGMAP, "ANGMAP", 0, "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"},
|
{TEXCO_ANGMAP, "ANGMAP", 0, "AngMap", "Use 360 degree angular coordinates, e.g. for spherical light probes"},
|
||||||
{TEXCO_H_SPHEREMAP, "SPHERE", 0, "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"},
|
{TEXCO_H_SPHEREMAP, "SPHERE", 0, "Sphere", "For 360 degree panorama sky, spherical mapped, only top half"},
|
||||||
|
{TEXCO_EQUIRECTMAP, "EQUIRECT", 0, "Equirectangular", "For 360 degree panorama sky, equirectangular mapping"},
|
||||||
{TEXCO_H_TUBEMAP, "TUBE", 0, "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"},
|
{TEXCO_H_TUBEMAP, "TUBE", 0, "Tube", "For 360 degree panorama sky, cylindrical mapped, only top half"},
|
||||||
{TEXCO_OBJECT, "OBJECT", 0, "Object", "Use linked object's coordinates for texture coordinates"},
|
{TEXCO_OBJECT, "OBJECT", 0, "Object", "Use linked object's coordinates for texture coordinates"},
|
||||||
{0, NULL, 0, NULL, NULL}};
|
{0, NULL, 0, NULL, NULL}};
|
||||||
|
@@ -3083,6 +3083,12 @@ void do_sky_tex(const float rco[3], float lo[3], const float dxyview[2], float h
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case TEXCO_EQUIRECTMAP:
|
||||||
|
tempvec[0]= atan2f(lo[0], lo[2]) / (float)M_PI;
|
||||||
|
tempvec[1]= 1.0f - 2.0f*saacos(lo[1]) / (float)M_PI;
|
||||||
|
tempvec[2]= 0.0f;
|
||||||
|
co= tempvec;
|
||||||
|
break;
|
||||||
case TEXCO_OBJECT:
|
case TEXCO_OBJECT:
|
||||||
if(mtex->object) {
|
if(mtex->object) {
|
||||||
copy_v3_v3(tempvec, lo);
|
copy_v3_v3(tempvec, lo);
|
||||||
|
Reference in New Issue
Block a user