Obj_io. Step 5. Example to see fix on step 4. (warning with memory in loader will be fixed ASAP)

This commit is contained in:
Bogdan Devichev 2015-01-29 17:39:59 +02:00
parent 23c3cd9489
commit d69e06183c
7 changed files with 273 additions and 23 deletions

View File

@ -17,6 +17,21 @@
#define WIDTH 1900
#define HEIGHT 1080
#define ADD_OBJ_MESH(mesh_name, Y, Z) \
mesh_name = eo_add(EVAS_3D_MESH_CLASS, evas); \
eo_do(mesh_name, \
efl_file_set("sweet_"#mesh_name".obj", NULL), \
evas_3d_mesh_frame_material_set(0, material), \
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG)); \
eo_do(mesh_name, efl_file_save("saved_"#mesh_name".obj", NULL, NULL)); \
mesh_name##_node = eo_add(EVAS_3D_NODE_CLASS, evas, \
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH)); \
eo_do(root_node, \
evas_3d_node_member_add(mesh_name##_node)); \
eo_do(mesh_name##_node, \
evas_3d_node_mesh_add(mesh_name), \
evas_3d_node_position_set(0, Y, Z));
Ecore_Evas *ecore_evas = NULL;
Evas *evas = NULL;
Eo *background = NULL;
@ -27,8 +42,14 @@ Eo *root_node = NULL;
Eo *camera_node = NULL;
Eo *light_node = NULL;
Eo *camera = NULL;
Eo *mesh_node = NULL;
Eo *mesh = NULL;
Eo *home_node = NULL;
Eo *home = NULL;
Eo *home_without_normals_node = NULL;
Eo *home_without_normals = NULL;;
Eo *home_without_tex_coords_node = NULL;
Eo *home_without_tex_coords = NULL;
Eo *home_only_vertex_coords_node = NULL;
Eo *home_only_vertex_coords = NULL;
Eo *material = NULL;
Eo *texture = NULL;
Eo *light = NULL;
@ -38,7 +59,7 @@ static float angle = 0;
static Eina_Bool
_animate_scene(void *data)
{
angle += 0.5;
angle += 0.2;
eo_do((Evas_3D_Node *)data, evas_3d_node_orientation_angle_axis_set(angle, 1.0, 1.0, -1.0));
@ -92,7 +113,7 @@ main(void)
/* Add the camera. */
camera = eo_add(EVAS_3D_CAMERA_CLASS, evas);
eo_do(camera,
evas_3d_camera_projection_perspective_set(60.0, 1.0, 1.0, 500.0));
evas_3d_camera_projection_perspective_set(100.0, 1.0, 1.0, 500.0));
camera_node =
eo_add(EVAS_3D_NODE_CLASS, evas,
@ -102,8 +123,8 @@ main(void)
eo_do(root_node,
evas_3d_node_member_add(camera_node));
eo_do(camera_node,
evas_3d_node_position_set(10.0, 0.0, 2.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 2.0,
evas_3d_node_position_set(10.0, 0.0, 0.0),
evas_3d_node_look_at_set(EVAS_3D_SPACE_PARENT, 0.0, 0.0, 0.0,
EVAS_3D_SPACE_PARENT, 0.0, 0.0, 1.0));
/* Add the light. */
light = eo_add(EVAS_3D_LIGHT_CLASS, evas);
@ -124,16 +145,14 @@ main(void)
eo_do(root_node,
evas_3d_node_member_add(light_node));
/* Add the mesh. */
mesh = eo_add(EVAS_3D_MESH_CLASS, evas);
texture = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
material = eo_add(EVAS_3D_MATERIAL_CLASS, evas);
eo_do(mesh,
efl_file_set("sweet_home.obj", NULL),
evas_3d_mesh_frame_material_set(0, material),
evas_3d_mesh_shade_mode_set(EVAS_3D_SHADE_MODE_PHONG));
ADD_OBJ_MESH(home, -3, -3)
ADD_OBJ_MESH(home_without_normals, -3, 3)
ADD_OBJ_MESH(home_without_tex_coords, 3, -3)
ADD_OBJ_MESH(home_only_vertex_coords, 3, 3)
texture = eo_add(EVAS_3D_TEXTURE_CLASS, evas);
eo_do(texture,
evas_3d_texture_file_set("sweet_home_temp.png", NULL),
evas_3d_texture_filter_set(EVAS_3D_TEXTURE_FILTER_NEAREST,
@ -154,15 +173,6 @@ main(void)
1.0, 1.0, 1.0, 1.0),
evas_3d_material_shininess_set(50.0));
eo_do(mesh, efl_file_save("saved_home.obj", NULL, NULL));
mesh_node = eo_add(EVAS_3D_NODE_CLASS, evas,
evas_3d_node_constructor(EVAS_3D_NODE_TYPE_MESH));
eo_do(root_node,
evas_3d_node_member_add(mesh_node));
eo_do(mesh_node,
evas_3d_node_mesh_add(mesh));
/* Set up scene. */
eo_do(scene,
evas_3d_scene_root_node_set(root_node),
@ -185,7 +195,10 @@ main(void)
/* Set the image object as render target for 3D scene. */
eo_do(image, evas_obj_image_scene_set(scene));
ecore_timer_add(0.01, _animate_scene, mesh_node);
ecore_timer_add(0.01, _animate_scene, home_node);
ecore_timer_add(0.01, _animate_scene, home_without_normals_node);
ecore_timer_add(0.01, _animate_scene, home_without_tex_coords_node);
ecore_timer_add(0.01, _animate_scene, home_only_vertex_coords_node);
/* Enter main loop. */
ecore_main_loop_begin();

View File

@ -0,0 +1,12 @@
# Blender MTL File: 'sweet_home.blend'
# Material Count: 1
newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd /home/bdevichev/Desktop/rect.png

View File

@ -0,0 +1,40 @@
# Blender v2.69 (sub 0) OBJ File: 'sweet_home.blend'
# www.blender.org
mtllib sweet_home_only_vertex_coords.mtl
o Cube
v 1.000003 -0.999997 0.000002
v -0.999997 -1.000003 0.000002
v -1.000002 0.999998 0.000002
v 0.999998 1.000002 0.000002
v 1.000002 -0.999998 2.000002
v -0.999998 -1.000002 2.000002
v -1.000002 0.999998 2.000002
v 0.999997 1.000003 2.000002
v 0.000002 -1.000000 3.075149
v -0.000002 1.000000 3.075149
v 0.666668 -0.644449 2.358384
v 0.333335 -0.644450 2.716766
v 0.666667 -0.293067 2.358384
v 0.333334 -0.293068 2.716766
v 0.662209 -0.629904 2.991038
v 0.337794 -0.629904 2.980731
v 0.662208 -0.307612 2.991038
v 0.337793 -0.307613 2.980731
usemtl Material
s off
f 4 8 5 1
f 6 2 1 5 9
f 7 10 8 4 3
f 11 12 14 13
f 15 17 18 16
f 2 3 4 1
f 6 7 3 2
f 6 9 10 7
f 14 12 16 18
f 11 13 17 15
f 13 14 18 17
f 12 11 15 16
f 5 11 12 9
f 9 12 14 10
f 13 8 10 14
f 11 5 8 13

View File

@ -0,0 +1,22 @@
# Blender MTL File: 'sweet_home.blend'
# Material Count: 2
newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd /home/bdevichev/Desktop/rect.png
newmtl Material_Untitled
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd /home/bdevichev/Desktop/sweet_home.png

View File

@ -0,0 +1,96 @@
# Blender v2.69 (sub 0) OBJ File: 'sweet_home.blend'
# www.blender.org
mtllib sweet_home_without_normals.mtl
o Cube
v 1.000003 -0.999997 0.000002
v -0.999997 -1.000003 0.000002
v -1.000002 0.999998 0.000002
v 0.999998 1.000002 0.000002
v 1.000002 -0.999998 2.000002
v -0.999998 -1.000002 2.000002
v -1.000002 0.999998 2.000002
v 0.999997 1.000003 2.000002
v 0.000002 -1.000000 3.075149
v -0.000002 1.000000 3.075149
v 0.666668 -0.644449 2.358384
v 0.333335 -0.644450 2.716766
v 0.666667 -0.293067 2.358384
v 0.333334 -0.293068 2.716766
v 0.662209 -0.629904 2.991038
v 0.337794 -0.629904 2.980731
v 0.662208 -0.307612 2.991038
v 0.337793 -0.307613 2.980731
vt 0.013689 0.608350
vt 0.285640 0.608350
vt 0.285640 0.978776
vt 0.013689 0.978776
vt 0.564957 0.983606
vt 0.293719 0.983606
vt 0.293719 0.613180
vt 0.564957 0.613180
vt 0.646856 0.021326
vt 0.083404 0.021326
vt 0.083369 0.584801
vt 0.646820 0.584801
vt 0.949735 0.303064
vt 0.654355 0.022016
vt 0.957234 0.303753
vt 0.654320 0.585490
vt 0.090869 0.585491
vt 0.090904 0.022016
vt 0.820337 0.692442
vt 0.820337 0.803140
vt 0.740863 0.803140
vt 0.740863 0.692442
vt 0.695284 0.903159
vt 0.695284 0.830265
vt 0.768687 0.830265
vt 0.768687 0.903159
vt 0.874667 0.789013
vt 0.874667 0.893367
vt 0.979009 0.893367
vt 0.979009 0.789013
vt 0.567834 0.981515
vt 0.567834 0.611089
vt 0.768686 0.903159
vt 0.768687 0.823686
vt 0.811715 0.826975
vt 0.811715 0.899870
vt 0.591196 0.903159
vt 0.591196 0.823686
vt 0.695284 0.826975
vt 0.695284 0.899870
vt 0.666035 0.721564
vt 0.667476 0.661838
vt 0.740863 0.660019
vt 0.591196 0.741571
vt 0.666035 0.660015
vt 0.666035 0.803140
vt 0.592658 0.801339
vt 0.013481 0.981515
vt 0.104078 0.915663
vt 0.194676 0.915663
vt 0.285274 0.981515
vt 0.194676 0.850582
vt 0.285274 0.611089
vt 0.104078 0.850582
vt 0.013481 0.611089
usemtl Material
s off
f 6/1 9/2 10/3 7/4
usemtl Material_Untitled
f 4/5 8/6 5/7 1/8
f 6/9 2/10 1/11 5/12 9/13
f 7/14 10/15 8/16 4/17 3/18
f 11/19 12/20 14/21 13/22
f 15/23 17/24 18/25 16/26
f 2/27 3/28 4/29 1/30
f 6/2 7/3 3/31 2/32
f 14/33 12/34 16/35 18/36
f 11/37 13/38 17/39 15/40
f 13/21 14/41 18/42 17/43
f 12/44 11/45 15/46 16/47
f 5/48 11/49 12/50 9/51
f 9/51 12/50 14/52 10/53
f 13/54 8/55 10/53 14/52
f 11/49 5/48 8/55 13/54

View File

@ -0,0 +1,12 @@
# Blender MTL File: 'sweet_home.blend'
# Material Count: 1
newmtl Material
Ns 96.078431
Ka 0.000000 0.000000 0.000000
Kd 0.640000 0.640000 0.640000
Ks 0.500000 0.500000 0.500000
Ni 1.000000
d 1.000000
illum 2
map_Kd /home/bdevichev/Desktop/rect.png

View File

@ -0,0 +1,55 @@
# Blender v2.69 (sub 0) OBJ File: 'sweet_home.blend'
# www.blender.org
mtllib sweet_home_without_tex_coords.mtl
o Cube
v 1.000003 -0.999997 0.000002
v -0.999997 -1.000003 0.000002
v -1.000002 0.999998 0.000002
v 0.999998 1.000002 0.000002
v 1.000002 -0.999998 2.000002
v -0.999998 -1.000002 2.000002
v -1.000002 0.999998 2.000002
v 0.999997 1.000003 2.000002
v 0.000002 -1.000000 3.075149
v -0.000002 1.000000 3.075149
v 0.666668 -0.644449 2.358384
v 0.333335 -0.644450 2.716766
v 0.666667 -0.293067 2.358384
v 0.333334 -0.293068 2.716766
v 0.662209 -0.629904 2.991038
v 0.337794 -0.629904 2.980731
v 0.662208 -0.307612 2.991038
v 0.337793 -0.307613 2.980731
vn 1.000000 0.000002 0.000000
vn 0.000002 -1.000000 0.000000
vn -0.000002 1.000000 -0.000000
vn -0.732233 -0.000001 -0.681054
vn -0.031755 -0.000000 0.999496
vn -0.000000 0.000000 -1.000000
vn -1.000000 -0.000002 -0.000000
vn -0.732233 -0.000002 0.681054
vn -0.999857 -0.000002 0.016891
vn 0.999975 0.000002 0.007049
vn 0.017155 0.999327 0.032422
vn 0.017160 -0.999327 0.032422
vn 0.732233 0.000001 0.681054
vn 0.732233 0.000002 0.681054
vn 0.732234 0.000002 0.681053
usemtl Material
s off
f 4//1 8//1 5//1 1//1
f 6//2 2//2 1//2 5//2 9//2
f 7//3 10//3 8//3 4//3 3//3
f 11//4 12//4 14//4 13//4
f 15//5 17//5 18//5 16//5
f 2//6 3//6 4//6 1//6
f 6//7 7//7 3//7 2//7
f 6//8 9//8 10//8 7//8
f 14//9 12//9 16//9 18//9
f 11//10 13//10 17//10 15//10
f 13//11 14//11 18//11 17//11
f 12//12 11//12 15//12 16//12
f 5//13 11//13 12//13 9//13
f 9//14 12//14 14//14 10//14
f 13//14 8//14 10//14 14//14
f 11//15 5//15 8//15 13//15