geometry/circle: add texture coordinates

Blender also generated a different triangulation.
This commit is contained in:
Zack Buhman 2024-01-27 10:58:39 +08:00
parent 4842ab0e4f
commit b4239dcfe8
3 changed files with 162 additions and 95 deletions

View File

@ -108,7 +108,7 @@ void transform1(ta_parameter_writer& parameter,
void transform(ta_parameter_writer& parameter, void transform(ta_parameter_writer& parameter,
const vec3 * vertices, const vec3 * vertices,
const face_vn& face, const face_vtn& face,
const vec4& color, const vec4& color,
const vec3& position, const vec3& position,
const float theta, const float theta,

View File

@ -4,22 +4,6 @@
namespace circle { namespace circle {
constexpr vec3 vertices[] = { constexpr vec3 vertices[] = {
{ 0.000000f, 0.000000f, -1.000000f },
{ -0.195090f, 0.000000f, -0.980785f },
{ -0.382683f, 0.000000f, -0.923880f },
{ -0.555570f, 0.000000f, -0.831470f },
{ -0.707107f, 0.000000f, -0.707107f },
{ -0.831470f, 0.000000f, -0.555570f },
{ -0.923880f, 0.000000f, -0.382683f },
{ -0.980785f, 0.000000f, -0.195090f },
{ -1.000000f, 0.000000f, 0.000000f },
{ -0.980785f, 0.000000f, 0.195090f },
{ -0.923880f, 0.000000f, 0.382683f },
{ -0.831470f, 0.000000f, 0.555570f },
{ -0.707107f, 0.000000f, 0.707107f },
{ -0.555570f, 0.000000f, 0.831470f },
{ -0.382683f, 0.000000f, 0.923880f },
{ -0.195090f, 0.000000f, 0.980785f },
{ 0.000000f, 0.000000f, 1.000000f }, { 0.000000f, 0.000000f, 1.000000f },
{ 0.195090f, 0.000000f, 0.980785f }, { 0.195090f, 0.000000f, 0.980785f },
{ 0.382683f, 0.000000f, 0.923880f }, { 0.382683f, 0.000000f, 0.923880f },
@ -36,45 +20,96 @@ namespace circle {
{ 0.555570f, 0.000000f, -0.831470f }, { 0.555570f, 0.000000f, -0.831470f },
{ 0.382683f, 0.000000f, -0.923880f }, { 0.382683f, 0.000000f, -0.923880f },
{ 0.195090f, 0.000000f, -0.980785f }, { 0.195090f, 0.000000f, -0.980785f },
{ 0.000000f, 0.000000f, -1.000000f },
{ -0.195090f, 0.000000f, -0.980785f },
{ -0.382683f, 0.000000f, -0.923880f },
{ -0.555570f, 0.000000f, -0.831470f },
{ -0.707107f, 0.000000f, -0.707107f },
{ -0.831470f, 0.000000f, -0.555570f },
{ -0.923880f, 0.000000f, -0.382683f },
{ -0.980785f, 0.000000f, -0.195090f },
{ -1.000000f, 0.000000f, 0.000000f },
{ -0.980785f, 0.000000f, 0.195090f },
{ -0.923880f, 0.000000f, 0.382683f },
{ -0.831470f, 0.000000f, 0.555570f },
{ -0.707107f, 0.000000f, 0.707107f },
{ -0.555570f, 0.000000f, 0.831470f },
{ -0.382683f, 0.000000f, 0.923880f },
{ -0.195090f, 0.000000f, 0.980785f },
};
constexpr vec2 texture[] = {
{ 0.450764f, 0.000100f },
{ 0.999900f, 0.450764f },
{ 0.549236f, 0.999900f },
{ 0.450764f, 0.999900f },
{ 0.181332f, 0.888297f },
{ 0.354184f, 0.980689f },
{ 0.263208f, 0.943006f },
{ 0.111702f, 0.818668f },
{ 0.056994f, 0.736791f },
{ 0.019311f, 0.645815f },
{ 0.000100f, 0.549236f },
{ 0.000100f, 0.450764f },
{ 0.111702f, 0.181332f },
{ 0.019311f, 0.354184f },
{ 0.056994f, 0.263208f },
{ 0.181332f, 0.111702f },
{ 0.263209f, 0.056994f },
{ 0.354185f, 0.019311f },
{ 0.549236f, 0.000100f },
{ 0.818668f, 0.111702f },
{ 0.645816f, 0.019311f },
{ 0.736792f, 0.056994f },
{ 0.888298f, 0.181332f },
{ 0.943006f, 0.263209f },
{ 0.980689f, 0.354185f },
{ 0.999900f, 0.549236f },
{ 0.888298f, 0.818668f },
{ 0.980689f, 0.645815f },
{ 0.943006f, 0.736791f },
{ 0.818668f, 0.888298f },
{ 0.736791f, 0.943006f },
{ 0.645815f, 0.980689f },
}; };
constexpr vec3 normals[] = { constexpr vec3 normals[] = {
{ -0.000000f, 1.000000f, -0.000000f }, { -0.000000f, 1.000000f, -0.000000f },
}; };
constexpr face_vn faces[] = { constexpr face_vtn faces[] = {
{{31, 0}, { 0, 0}, { 1, 0}}, {{16, 0, 0}, {24, 1, 0}, { 0, 2, 0}},
{{30, 0}, {31, 0}, { 1, 0}}, {{ 0, 2, 0}, { 1, 3, 0}, { 4, 4, 0}},
{{20, 0}, {13, 0}, {18, 0}}, {{ 1, 3, 0}, { 2, 5, 0}, { 4, 4, 0}},
{{ 1, 0}, { 2, 0}, { 3, 0}}, {{ 2, 5, 0}, { 3, 6, 0}, { 4, 4, 0}},
{{29, 0}, { 1, 0}, { 3, 0}}, {{ 4, 4, 0}, { 5, 7, 0}, { 6, 8, 0}},
{{28, 0}, {29, 0}, { 3, 0}}, {{ 6, 8, 0}, { 7, 9, 0}, { 4, 4, 0}},
{{29, 0}, {30, 0}, { 1, 0}}, {{ 7, 9, 0}, { 8, 10, 0}, { 4, 4, 0}},
{{ 3, 0}, { 4, 0}, { 5, 0}}, {{ 8, 10, 0}, { 9, 11, 0}, {12, 12, 0}},
{{27, 0}, { 3, 0}, { 5, 0}}, {{ 9, 11, 0}, {10, 13, 0}, {12, 12, 0}},
{{26, 0}, {27, 0}, { 5, 0}}, {{10, 13, 0}, {11, 14, 0}, {12, 12, 0}},
{{26, 0}, { 5, 0}, { 6, 0}}, {{12, 12, 0}, {13, 15, 0}, {14, 16, 0}},
{{25, 0}, {26, 0}, { 6, 0}}, {{14, 16, 0}, {15, 17, 0}, {12, 12, 0}},
{{25, 0}, { 6, 0}, { 7, 0}}, {{15, 17, 0}, {16, 0, 0}, {12, 12, 0}},
{{24, 0}, {25, 0}, { 7, 0}}, {{16, 0, 0}, {17, 18, 0}, {20, 19, 0}},
{{24, 0}, { 7, 0}, { 8, 0}}, {{17, 18, 0}, {18, 20, 0}, {20, 19, 0}},
{{23, 0}, {24, 0}, { 8, 0}}, {{18, 20, 0}, {19, 21, 0}, {20, 19, 0}},
{{23, 0}, { 8, 0}, { 9, 0}}, {{20, 19, 0}, {21, 22, 0}, {22, 23, 0}},
{{22, 0}, {23, 0}, { 9, 0}}, {{22, 23, 0}, {23, 24, 0}, {20, 19, 0}},
{{22, 0}, { 9, 0}, {10, 0}}, {{23, 24, 0}, {24, 1, 0}, {20, 19, 0}},
{{21, 0}, {22, 0}, {10, 0}}, {{24, 1, 0}, {25, 25, 0}, {28, 26, 0}},
{{21, 0}, {10, 0}, {11, 0}}, {{25, 25, 0}, {26, 27, 0}, {28, 26, 0}},
{{20, 0}, {21, 0}, {11, 0}}, {{26, 27, 0}, {27, 28, 0}, {28, 26, 0}},
{{12, 0}, {13, 0}, {11, 0}}, {{28, 26, 0}, {29, 29, 0}, {30, 30, 0}},
{{27, 0}, {28, 0}, { 3, 0}}, {{30, 30, 0}, {31, 31, 0}, {28, 26, 0}},
{{13, 0}, {20, 0}, {11, 0}}, {{31, 31, 0}, { 0, 2, 0}, {28, 26, 0}},
{{19, 0}, {20, 0}, {18, 0}}, {{ 0, 2, 0}, { 4, 4, 0}, { 8, 10, 0}},
{{18, 0}, {13, 0}, {14, 0}}, {{ 8, 10, 0}, {12, 12, 0}, {16, 0, 0}},
{{17, 0}, {18, 0}, {14, 0}}, {{16, 0, 0}, {20, 19, 0}, {24, 1, 0}},
{{17, 0}, {14, 0}, {15, 0}}, {{24, 1, 0}, {28, 26, 0}, { 0, 2, 0}},
{{16, 0}, {17, 0}, {15, 0}}, {{ 0, 2, 0}, { 8, 10, 0}, {16, 0, 0}},
}; };
constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face_vn)); constexpr uint32_t num_faces = (sizeof (faces)) / (sizeof (face_vtn));
} }

View File

@ -1,22 +1,6 @@
# Blender 3.3.6 # Blender 3.3.6
# www.blender.org # www.blender.org
o Circle o Circle
v 0.000000 0.000000 -1.000000
v -0.195090 0.000000 -0.980785
v -0.382683 0.000000 -0.923880
v -0.555570 0.000000 -0.831470
v -0.707107 0.000000 -0.707107
v -0.831470 0.000000 -0.555570
v -0.923880 0.000000 -0.382683
v -0.980785 0.000000 -0.195090
v -1.000000 0.000000 0.000000
v -0.980785 0.000000 0.195090
v -0.923880 0.000000 0.382683
v -0.831470 0.000000 0.555570
v -0.707107 0.000000 0.707107
v -0.555570 0.000000 0.831470
v -0.382683 0.000000 0.923880
v -0.195090 0.000000 0.980785
v 0.000000 0.000000 1.000000 v 0.000000 0.000000 1.000000
v 0.195090 0.000000 0.980785 v 0.195090 0.000000 0.980785
v 0.382683 0.000000 0.923880 v 0.382683 0.000000 0.923880
@ -33,35 +17,83 @@ v 0.707107 0.000000 -0.707107
v 0.555570 0.000000 -0.831470 v 0.555570 0.000000 -0.831470
v 0.382683 0.000000 -0.923880 v 0.382683 0.000000 -0.923880
v 0.195090 0.000000 -0.980785 v 0.195090 0.000000 -0.980785
v 0.000000 0.000000 -1.000000
v -0.195090 0.000000 -0.980785
v -0.382683 0.000000 -0.923880
v -0.555570 0.000000 -0.831470
v -0.707107 0.000000 -0.707107
v -0.831470 0.000000 -0.555570
v -0.923880 0.000000 -0.382683
v -0.980785 0.000000 -0.195090
v -1.000000 0.000000 0.000000
v -0.980785 0.000000 0.195090
v -0.923880 0.000000 0.382683
v -0.831470 0.000000 0.555570
v -0.707107 0.000000 0.707107
v -0.555570 0.000000 0.831470
v -0.382683 0.000000 0.923880
v -0.195090 0.000000 0.980785
vn -0.0000 1.0000 -0.0000 vn -0.0000 1.0000 -0.0000
vt 0.549236 0.999900
vt 0.450764 0.999900
vt 0.354184 0.980689
vt 0.263208 0.943006
vt 0.181332 0.888297
vt 0.111702 0.818668
vt 0.056994 0.736791
vt 0.019311 0.645815
vt 0.000100 0.549236
vt 0.000100 0.450764
vt 0.019311 0.354184
vt 0.056994 0.263208
vt 0.111702 0.181332
vt 0.181332 0.111702
vt 0.263209 0.056994
vt 0.354185 0.019311
vt 0.450764 0.000100
vt 0.549236 0.000100
vt 0.645816 0.019311
vt 0.736792 0.056994
vt 0.818668 0.111702
vt 0.888298 0.181332
vt 0.943006 0.263209
vt 0.980689 0.354185
vt 0.999900 0.450764
vt 0.999900 0.549236
vt 0.980689 0.645815
vt 0.943006 0.736791
vt 0.888298 0.818668
vt 0.818668 0.888298
vt 0.736791 0.943006
vt 0.645815 0.980689
s 0 s 0
f 32//1 1//1 2//1 f 17/17/1 25/25/1 1/1/1
f 31//1 32//1 2//1 f 1/1/1 2/2/1 5/5/1
f 21//1 14//1 19//1 f 2/2/1 3/3/1 5/5/1
f 2//1 3//1 4//1 f 3/3/1 4/4/1 5/5/1
f 30//1 2//1 4//1 f 5/5/1 6/6/1 7/7/1
f 29//1 30//1 4//1 f 7/7/1 8/8/1 5/5/1
f 30//1 31//1 2//1 f 8/8/1 9/9/1 5/5/1
f 4//1 5//1 6//1 f 9/9/1 10/10/1 13/13/1
f 28//1 4//1 6//1 f 10/10/1 11/11/1 13/13/1
f 27//1 28//1 6//1 f 11/11/1 12/12/1 13/13/1
f 27//1 6//1 7//1 f 13/13/1 14/14/1 15/15/1
f 26//1 27//1 7//1 f 15/15/1 16/16/1 13/13/1
f 26//1 7//1 8//1 f 16/16/1 17/17/1 13/13/1
f 25//1 26//1 8//1 f 17/17/1 18/18/1 21/21/1
f 25//1 8//1 9//1 f 18/18/1 19/19/1 21/21/1
f 24//1 25//1 9//1 f 19/19/1 20/20/1 21/21/1
f 24//1 9//1 10//1 f 21/21/1 22/22/1 23/23/1
f 23//1 24//1 10//1 f 23/23/1 24/24/1 21/21/1
f 23//1 10//1 11//1 f 24/24/1 25/25/1 21/21/1
f 22//1 23//1 11//1 f 25/25/1 26/26/1 29/29/1
f 22//1 11//1 12//1 f 26/26/1 27/27/1 29/29/1
f 21//1 22//1 12//1 f 27/27/1 28/28/1 29/29/1
f 13//1 14//1 12//1 f 29/29/1 30/30/1 31/31/1
f 28//1 29//1 4//1 f 31/31/1 32/32/1 29/29/1
f 14//1 21//1 12//1 f 32/32/1 1/1/1 29/29/1
f 20//1 21//1 19//1 f 1/1/1 5/5/1 9/9/1
f 19//1 14//1 15//1 f 9/9/1 13/13/1 17/17/1
f 18//1 19//1 15//1 f 17/17/1 21/21/1 25/25/1
f 18//1 15//1 16//1 f 25/25/1 29/29/1 1/1/1
f 17//1 18//1 16//1 f 1/1/1 9/9/1 17/17/1