diff --git a/cw 9/models/sphere.obj b/cw 9/models/sphere.obj new file mode 100644 index 0000000..d078c45 --- /dev/null +++ b/cw 9/models/sphere.obj @@ -0,0 +1,2500 @@ +# Max2Obj Version 4.0 Mar 10th, 2001 +# +# object default to come ... +# +v 0.000000 0.986854 -0.000000 +v -0.000000 0.967892 -0.192526 +v -0.037560 0.967892 -0.188826 +v -0.073676 0.967892 -0.177871 +v -0.106962 0.967892 -0.160079 +v -0.136136 0.967892 -0.136136 +v -0.160079 0.967892 -0.106962 +v -0.177871 0.967892 -0.073676 +v -0.188826 0.967892 -0.037560 +v -0.192526 0.967892 0.000000 +v -0.188826 0.967892 0.037560 +v -0.177871 0.967892 0.073676 +v -0.160079 0.967892 0.106962 +v -0.136136 0.967892 0.136136 +v -0.106961 0.967892 0.160079 +v -0.073676 0.967892 0.177871 +v -0.037560 0.967892 0.188826 +v 0.000000 0.967892 0.192526 +v 0.037560 0.967892 0.188826 +v 0.073677 0.967892 0.177870 +v 0.106962 0.967892 0.160079 +v 0.136136 0.967892 0.136136 +v 0.160079 0.967892 0.106961 +v 0.177871 0.967892 0.073676 +v 0.188826 0.967892 0.037560 +v 0.192526 0.967892 -0.000000 +v 0.188826 0.967892 -0.037560 +v 0.177870 0.967892 -0.073677 +v 0.160079 0.967892 -0.106962 +v 0.136136 0.967892 -0.136136 +v 0.106961 0.967892 -0.160079 +v 0.073676 0.967892 -0.177871 +v 0.037560 0.967892 -0.188826 +v -0.000000 0.911734 -0.377653 +v -0.073676 0.911734 -0.370396 +v -0.144521 0.911734 -0.348906 +v -0.209813 0.911734 -0.314007 +v -0.267041 0.911734 -0.267041 +v -0.314007 0.911734 -0.209813 +v -0.348906 0.911734 -0.144521 +v -0.370396 0.911734 -0.073676 +v -0.377653 0.911734 0.000000 +v -0.370396 0.911734 0.073677 +v -0.348905 0.911734 0.144522 +v -0.314007 0.911734 0.209813 +v -0.267041 0.911734 0.267041 +v -0.209812 0.911734 0.314007 +v -0.144521 0.911734 0.348906 +v -0.073676 0.911734 0.370396 +v 0.000000 0.911734 0.377653 +v 0.073677 0.911734 0.370396 +v 0.144522 0.911734 0.348905 +v 0.209813 0.911734 0.314006 +v 0.267041 0.911734 0.267040 +v 0.314007 0.911734 0.209812 +v 0.348906 0.911734 0.144521 +v 0.370396 0.911734 0.073676 +v 0.377653 0.911734 -0.000001 +v 0.370396 0.911734 -0.073677 +v 0.348905 0.911734 -0.144522 +v 0.314006 0.911734 -0.209813 +v 0.267040 0.911734 -0.267041 +v 0.209812 0.911734 -0.314007 +v 0.144521 0.911734 -0.348906 +v 0.073676 0.911734 -0.370396 +v -0.000000 0.820539 -0.548267 +v -0.106962 0.820539 -0.537732 +v -0.209813 0.820539 -0.506532 +v -0.304601 0.820539 -0.455867 +v -0.387683 0.820539 -0.387683 +v -0.455867 0.820539 -0.304601 +v -0.506532 0.820539 -0.209812 +v -0.537732 0.820539 -0.106961 +v -0.548267 0.820539 0.000000 +v -0.537732 0.820539 0.106962 +v -0.506532 0.820539 0.209813 +v -0.455867 0.820539 0.304601 +v -0.387683 0.820539 0.387683 +v -0.304600 0.820539 0.455867 +v -0.209812 0.820539 0.506533 +v -0.106961 0.820539 0.537732 +v 0.000001 0.820539 0.548267 +v 0.106962 0.820539 0.537732 +v 0.209813 0.820539 0.506532 +v 0.304601 0.820539 0.455867 +v 0.387684 0.820539 0.387683 +v 0.455868 0.820539 0.304600 +v 0.506533 0.820539 0.209812 +v 0.537732 0.820539 0.106961 +v 0.548267 0.820539 -0.000001 +v 0.537732 0.820539 -0.106962 +v 0.506532 0.820539 -0.209813 +v 0.455867 0.820539 -0.304602 +v 0.387682 0.820539 -0.387684 +v 0.304600 0.820539 -0.455868 +v 0.209811 0.820539 -0.506533 +v 0.106960 0.820539 -0.537732 +v -0.000000 0.697811 -0.697811 +v -0.136136 0.697811 -0.684403 +v -0.267041 0.697811 -0.644693 +v -0.387683 0.697811 -0.580209 +v -0.493427 0.697811 -0.493427 +v -0.580209 0.697811 -0.387683 +v -0.644693 0.697811 -0.267041 +v -0.684403 0.697811 -0.136136 +v -0.697811 0.697811 0.000000 +v -0.684403 0.697811 0.136136 +v -0.644693 0.697811 0.267041 +v -0.580209 0.697811 0.387683 +v -0.493427 0.697811 0.493427 +v -0.387683 0.697811 0.580209 +v -0.267040 0.697811 0.644694 +v -0.136136 0.697811 0.684403 +v 0.000001 0.697811 0.697811 +v 0.136137 0.697811 0.684403 +v 0.267041 0.697811 0.644693 +v 0.387684 0.697811 0.580208 +v 0.493428 0.697811 0.493426 +v 0.580209 0.697811 0.387682 +v 0.644694 0.697811 0.267040 +v 0.684403 0.697811 0.136135 +v 0.697811 0.697811 -0.000001 +v 0.684403 0.697811 -0.136137 +v 0.644693 0.697811 -0.267042 +v 0.580208 0.697811 -0.387684 +v 0.493426 0.697811 -0.493428 +v 0.387682 0.697811 -0.580210 +v 0.267039 0.697811 -0.644694 +v 0.136135 0.697811 -0.684403 +v -0.000000 0.548267 -0.820539 +v -0.160079 0.548267 -0.804773 +v -0.314007 0.548267 -0.758079 +v -0.455867 0.548267 -0.682253 +v -0.580209 0.548267 -0.580209 +v -0.682253 0.548267 -0.455867 +v -0.758079 0.548267 -0.314007 +v -0.804773 0.548267 -0.160079 +v -0.820539 0.548267 0.000000 +v -0.804773 0.548267 0.160080 +v -0.758079 0.548267 0.314007 +v -0.682253 0.548267 0.455867 +v -0.580208 0.548267 0.580209 +v -0.455867 0.548267 0.682254 +v -0.314006 0.548267 0.758080 +v -0.160079 0.548267 0.804773 +v 0.000001 0.548267 0.820539 +v 0.160080 0.548267 0.804773 +v 0.314008 0.548267 0.758079 +v 0.455868 0.548267 0.682253 +v 0.580210 0.548267 0.580208 +v 0.682254 0.548267 0.455866 +v 0.758080 0.548267 0.314006 +v 0.804773 0.548267 0.160078 +v 0.820539 0.548267 -0.000001 +v 0.804772 0.548267 -0.160081 +v 0.758079 0.548267 -0.314008 +v 0.682253 0.548267 -0.455868 +v 0.580208 0.548267 -0.580210 +v 0.455866 0.548267 -0.682254 +v 0.314005 0.548267 -0.758080 +v 0.160078 0.548267 -0.804773 +v -0.000000 0.377653 -0.911734 +v -0.177871 0.377653 -0.894215 +v -0.348906 0.377653 -0.842333 +v -0.506532 0.377653 -0.758079 +v -0.644693 0.377653 -0.644693 +v -0.758079 0.377653 -0.506532 +v -0.842333 0.377653 -0.348905 +v -0.894215 0.377653 -0.177870 +v -0.911734 0.377653 0.000000 +v -0.894215 0.377653 0.177871 +v -0.842332 0.377653 0.348906 +v -0.758079 0.377653 0.506533 +v -0.644693 0.377653 0.644694 +v -0.506532 0.377653 0.758080 +v -0.348905 0.377653 0.842333 +v -0.177870 0.377653 0.894216 +v 0.000001 0.377653 0.911734 +v 0.177871 0.377653 0.894215 +v 0.348906 0.377653 0.842332 +v 0.506533 0.377653 0.758079 +v 0.644694 0.377653 0.644693 +v 0.758080 0.377653 0.506531 +v 0.842333 0.377653 0.348904 +v 0.894216 0.377653 0.177869 +v 0.911734 0.377653 -0.000001 +v 0.894215 0.377653 -0.177872 +v 0.842332 0.377653 -0.348907 +v 0.758078 0.377653 -0.506534 +v 0.644692 0.377653 -0.644695 +v 0.506531 0.377653 -0.758080 +v 0.348904 0.377653 -0.842333 +v 0.177869 0.377653 -0.894216 +v -0.000000 0.192526 -0.967892 +v -0.188826 0.192526 -0.949294 +v -0.370396 0.192526 -0.894215 +v -0.537732 0.192526 -0.804773 +v -0.684403 0.192526 -0.684403 +v -0.804773 0.192526 -0.537732 +v -0.894215 0.192526 -0.370396 +v -0.949294 0.192526 -0.188826 +v -0.967892 0.192526 0.000000 +v -0.949294 0.192526 0.188827 +v -0.894215 0.192526 0.370397 +v -0.804772 0.192526 0.537732 +v -0.684402 0.192526 0.684403 +v -0.537731 0.192526 0.804773 +v -0.370395 0.192526 0.894216 +v -0.188826 0.192526 0.949294 +v 0.000001 0.192526 0.967892 +v 0.188827 0.192526 0.949294 +v 0.370397 0.192526 0.894215 +v 0.537733 0.192526 0.804772 +v 0.684404 0.192526 0.684402 +v 0.804773 0.192526 0.537731 +v 0.894216 0.192526 0.370395 +v 0.949294 0.192526 0.188825 +v 0.967892 0.192526 -0.000002 +v 0.949294 0.192526 -0.188828 +v 0.894215 0.192526 -0.370398 +v 0.804772 0.192526 -0.537733 +v 0.684402 0.192526 -0.684404 +v 0.537730 0.192526 -0.804774 +v 0.370394 0.192526 -0.894216 +v 0.188824 0.192526 -0.949294 +v -0.000000 0.000000 -0.986854 +v -0.192526 0.000000 -0.967892 +v -0.377653 0.000000 -0.911734 +v -0.548267 0.000000 -0.820539 +v -0.697811 0.000000 -0.697811 +v -0.820539 0.000000 -0.548267 +v -0.911734 0.000000 -0.377653 +v -0.967892 0.000000 -0.192525 +v -0.986854 0.000000 0.000000 +v -0.967892 0.000000 0.192526 +v -0.911734 0.000000 0.377653 +v -0.820539 0.000000 0.548267 +v -0.697811 0.000000 0.697812 +v -0.548266 0.000000 0.820539 +v -0.377652 0.000000 0.911734 +v -0.192525 0.000000 0.967892 +v 0.000001 0.000000 0.986854 +v 0.192527 0.000000 0.967892 +v 0.377654 0.000000 0.911734 +v 0.548268 0.000000 0.820538 +v 0.697812 0.000000 0.697810 +v 0.820540 0.000000 0.548266 +v 0.911735 0.000000 0.377651 +v 0.967892 0.000000 0.192524 +v 0.986854 0.000000 -0.000002 +v 0.967892 0.000000 -0.192527 +v 0.911734 0.000000 -0.377654 +v 0.820538 0.000000 -0.548268 +v 0.697810 0.000000 -0.697812 +v 0.548265 0.000000 -0.820540 +v 0.377651 0.000000 -0.911735 +v 0.192524 0.000000 -0.967892 +v -0.000000 -0.192526 -0.967892 +v -0.188826 -0.192526 -0.949294 +v -0.370396 -0.192526 -0.894215 +v -0.537732 -0.192526 -0.804773 +v -0.684403 -0.192526 -0.684403 +v -0.804773 -0.192526 -0.537732 +v -0.894216 -0.192526 -0.370396 +v -0.949294 -0.192526 -0.188826 +v -0.967892 -0.192526 0.000000 +v -0.949294 -0.192526 0.188827 +v -0.894215 -0.192526 0.370397 +v -0.804772 -0.192526 0.537732 +v -0.684402 -0.192526 0.684403 +v -0.537731 -0.192526 0.804773 +v -0.370395 -0.192526 0.894216 +v -0.188826 -0.192526 0.949294 +v 0.000001 -0.192526 0.967892 +v 0.188827 -0.192526 0.949294 +v 0.370397 -0.192526 0.894215 +v 0.537733 -0.192526 0.804772 +v 0.684404 -0.192526 0.684402 +v 0.804773 -0.192526 0.537731 +v 0.894216 -0.192526 0.370395 +v 0.949294 -0.192526 0.188825 +v 0.967892 -0.192526 -0.000002 +v 0.949294 -0.192526 -0.188828 +v 0.894215 -0.192526 -0.370398 +v 0.804772 -0.192526 -0.537733 +v 0.684402 -0.192526 -0.684404 +v 0.537730 -0.192526 -0.804774 +v 0.370394 -0.192526 -0.894216 +v 0.188824 -0.192526 -0.949294 +v -0.000000 -0.377653 -0.911734 +v -0.177871 -0.377653 -0.894215 +v -0.348906 -0.377653 -0.842333 +v -0.506532 -0.377653 -0.758079 +v -0.644693 -0.377653 -0.644693 +v -0.758079 -0.377653 -0.506532 +v -0.842333 -0.377653 -0.348905 +v -0.894216 -0.377653 -0.177870 +v -0.911734 -0.377653 0.000000 +v -0.894215 -0.377653 0.177871 +v -0.842332 -0.377653 0.348906 +v -0.758079 -0.377653 0.506533 +v -0.644693 -0.377653 0.644694 +v -0.506532 -0.377653 0.758080 +v -0.348905 -0.377653 0.842333 +v -0.177870 -0.377653 0.894216 +v 0.000001 -0.377653 0.911734 +v 0.177871 -0.377653 0.894215 +v 0.348907 -0.377653 0.842332 +v 0.506533 -0.377653 0.758079 +v 0.644694 -0.377653 0.644693 +v 0.758080 -0.377653 0.506531 +v 0.842333 -0.377653 0.348904 +v 0.894216 -0.377653 0.177869 +v 0.911734 -0.377653 -0.000001 +v 0.894215 -0.377653 -0.177872 +v 0.842332 -0.377653 -0.348907 +v 0.758078 -0.377653 -0.506534 +v 0.644692 -0.377653 -0.644695 +v 0.506531 -0.377653 -0.758080 +v 0.348904 -0.377653 -0.842333 +v 0.177869 -0.377653 -0.894216 +v -0.000000 -0.548267 -0.820539 +v -0.160079 -0.548267 -0.804773 +v -0.314007 -0.548267 -0.758079 +v -0.455867 -0.548267 -0.682253 +v -0.580209 -0.548267 -0.580209 +v -0.682253 -0.548267 -0.455867 +v -0.758079 -0.548267 -0.314007 +v -0.804773 -0.548267 -0.160079 +v -0.820539 -0.548267 0.000000 +v -0.804773 -0.548267 0.160080 +v -0.758079 -0.548267 0.314007 +v -0.682253 -0.548267 0.455868 +v -0.580208 -0.548267 0.580209 +v -0.455867 -0.548267 0.682254 +v -0.314006 -0.548267 0.758080 +v -0.160079 -0.548267 0.804773 +v 0.000001 -0.548267 0.820539 +v 0.160080 -0.548267 0.804773 +v 0.314008 -0.548267 0.758079 +v 0.455868 -0.548267 0.682253 +v 0.580210 -0.548267 0.580208 +v 0.682254 -0.548267 0.455866 +v 0.758080 -0.548267 0.314006 +v 0.804773 -0.548267 0.160078 +v 0.820539 -0.548267 -0.000001 +v 0.804772 -0.548267 -0.160081 +v 0.758079 -0.548267 -0.314008 +v 0.682253 -0.548267 -0.455868 +v 0.580208 -0.548267 -0.580210 +v 0.455866 -0.548267 -0.682254 +v 0.314005 -0.548267 -0.758080 +v 0.160078 -0.548267 -0.804773 +v -0.000000 -0.697811 -0.697811 +v -0.136136 -0.697811 -0.684403 +v -0.267041 -0.697811 -0.644693 +v -0.387683 -0.697811 -0.580209 +v -0.493427 -0.697811 -0.493427 +v -0.580209 -0.697811 -0.387683 +v -0.644693 -0.697811 -0.267041 +v -0.684403 -0.697811 -0.136136 +v -0.697811 -0.697811 0.000000 +v -0.684403 -0.697811 0.136136 +v -0.644693 -0.697811 0.267041 +v -0.580209 -0.697811 0.387683 +v -0.493427 -0.697811 0.493427 +v -0.387683 -0.697811 0.580209 +v -0.267040 -0.697811 0.644694 +v -0.136136 -0.697811 0.684403 +v 0.000001 -0.697811 0.697811 +v 0.136137 -0.697811 0.684403 +v 0.267041 -0.697811 0.644693 +v 0.387684 -0.697811 0.580208 +v 0.493428 -0.697811 0.493426 +v 0.580209 -0.697811 0.387682 +v 0.644694 -0.697811 0.267040 +v 0.684403 -0.697811 0.136135 +v 0.697811 -0.697811 -0.000001 +v 0.684403 -0.697811 -0.136137 +v 0.644693 -0.697811 -0.267042 +v 0.580208 -0.697811 -0.387684 +v 0.493426 -0.697811 -0.493428 +v 0.387682 -0.697811 -0.580210 +v 0.267039 -0.697811 -0.644694 +v 0.136135 -0.697811 -0.684403 +v -0.000000 -0.820539 -0.548267 +v -0.106962 -0.820539 -0.537732 +v -0.209813 -0.820539 -0.506532 +v -0.304601 -0.820539 -0.455867 +v -0.387683 -0.820539 -0.387683 +v -0.455867 -0.820539 -0.304601 +v -0.506532 -0.820539 -0.209812 +v -0.537732 -0.820539 -0.106961 +v -0.548267 -0.820539 0.000000 +v -0.537732 -0.820539 0.106962 +v -0.506532 -0.820539 0.209813 +v -0.455867 -0.820539 0.304601 +v -0.387683 -0.820539 0.387683 +v -0.304600 -0.820539 0.455867 +v -0.209812 -0.820539 0.506532 +v -0.106961 -0.820539 0.537732 +v 0.000001 -0.820539 0.548267 +v 0.106962 -0.820539 0.537732 +v 0.209813 -0.820539 0.506532 +v 0.304601 -0.820539 0.455867 +v 0.387684 -0.820539 0.387683 +v 0.455867 -0.820539 0.304600 +v 0.506533 -0.820539 0.209812 +v 0.537732 -0.820539 0.106961 +v 0.548267 -0.820539 -0.000001 +v 0.537732 -0.820539 -0.106962 +v 0.506532 -0.820539 -0.209813 +v 0.455866 -0.820539 -0.304601 +v 0.387682 -0.820539 -0.387684 +v 0.304600 -0.820539 -0.455868 +v 0.209811 -0.820539 -0.506533 +v 0.106960 -0.820539 -0.537732 +v -0.000000 -0.911734 -0.377653 +v -0.073676 -0.911734 -0.370396 +v -0.144521 -0.911734 -0.348905 +v -0.209812 -0.911734 -0.314007 +v -0.267041 -0.911734 -0.267041 +v -0.314007 -0.911734 -0.209812 +v -0.348905 -0.911734 -0.144521 +v -0.370396 -0.911734 -0.073676 +v -0.377653 -0.911734 0.000000 +v -0.370396 -0.911734 0.073677 +v -0.348905 -0.911734 0.144522 +v -0.314006 -0.911734 0.209813 +v -0.267040 -0.911734 0.267041 +v -0.209812 -0.911734 0.314007 +v -0.144521 -0.911734 0.348906 +v -0.073676 -0.911734 0.370396 +v 0.000000 -0.911734 0.377653 +v 0.073677 -0.911734 0.370396 +v 0.144522 -0.911734 0.348905 +v 0.209813 -0.911734 0.314006 +v 0.267041 -0.911734 0.267040 +v 0.314007 -0.911734 0.209812 +v 0.348906 -0.911734 0.144521 +v 0.370396 -0.911734 0.073676 +v 0.377653 -0.911734 -0.000001 +v 0.370396 -0.911734 -0.073677 +v 0.348905 -0.911734 -0.144522 +v 0.314006 -0.911734 -0.209813 +v 0.267040 -0.911734 -0.267041 +v 0.209812 -0.911734 -0.314007 +v 0.144521 -0.911734 -0.348906 +v 0.073676 -0.911734 -0.370396 +v -0.000000 -0.967892 -0.192525 +v -0.037560 -0.967892 -0.188826 +v -0.073676 -0.967892 -0.177870 +v -0.106961 -0.967892 -0.160079 +v -0.136136 -0.967892 -0.136136 +v -0.160079 -0.967892 -0.106961 +v -0.177870 -0.967892 -0.073676 +v -0.188826 -0.967892 -0.037560 +v -0.192525 -0.967892 0.000000 +v -0.188826 -0.967892 0.037560 +v -0.177870 -0.967892 0.073676 +v -0.160079 -0.967892 0.106962 +v -0.136136 -0.967892 0.136136 +v -0.106961 -0.967892 0.160079 +v -0.073676 -0.967892 0.177870 +v -0.037560 -0.967892 0.188826 +v 0.000000 -0.967892 0.192525 +v 0.037560 -0.967892 0.188826 +v 0.073677 -0.967892 0.177870 +v 0.106962 -0.967892 0.160079 +v 0.136136 -0.967892 0.136136 +v 0.160079 -0.967892 0.106961 +v 0.177870 -0.967892 0.073676 +v 0.188826 -0.967892 0.037560 +v 0.192525 -0.967892 -0.000000 +v 0.188826 -0.967892 -0.037560 +v 0.177870 -0.967892 -0.073677 +v 0.160079 -0.967892 -0.106962 +v 0.136136 -0.967892 -0.136136 +v 0.106961 -0.967892 -0.160079 +v 0.073676 -0.967892 -0.177870 +v 0.037559 -0.967892 -0.188826 +v 0.000000 -0.986854 -0.000000 +# 482 vertices + +vt 0.000000 1.000000 0.000000 +vt 0.031250 1.000000 0.000000 +vt 0.062500 1.000000 0.000000 +vt 0.093750 1.000000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.156250 1.000000 0.000000 +vt 0.187500 1.000000 0.000000 +vt 0.218750 1.000000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.281250 1.000000 0.000000 +vt 0.312500 1.000000 0.000000 +vt 0.343750 1.000000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.406250 1.000000 0.000000 +vt 0.437500 1.000000 0.000000 +vt 0.468750 1.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.531250 1.000000 0.000000 +vt 0.562500 1.000000 0.000000 +vt 0.593750 1.000000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.656250 1.000000 0.000000 +vt 0.687500 1.000000 0.000000 +vt 0.718750 1.000000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.781250 1.000000 0.000000 +vt 0.812500 1.000000 0.000000 +vt 0.843750 1.000000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.906250 1.000000 0.000000 +vt 0.937500 1.000000 0.000000 +vt 0.968750 1.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.000000 0.937500 0.000000 +vt 0.031250 0.937500 0.000000 +vt 0.062500 0.937500 0.000000 +vt 0.093750 0.937500 0.000000 +vt 0.125000 0.937500 0.000000 +vt 0.156250 0.937500 0.000000 +vt 0.187500 0.937500 0.000000 +vt 0.218750 0.937500 0.000000 +vt 0.250000 0.937500 0.000000 +vt 0.281250 0.937500 0.000000 +vt 0.312500 0.937500 0.000000 +vt 0.343750 0.937500 0.000000 +vt 0.375000 0.937500 0.000000 +vt 0.406250 0.937500 0.000000 +vt 0.437500 0.937500 0.000000 +vt 0.468750 0.937500 0.000000 +vt 0.500000 0.937500 0.000000 +vt 0.531250 0.937500 0.000000 +vt 0.562500 0.937500 0.000000 +vt 0.593750 0.937500 0.000000 +vt 0.625000 0.937500 0.000000 +vt 0.656250 0.937500 0.000000 +vt 0.687500 0.937500 0.000000 +vt 0.718750 0.937500 0.000000 +vt 0.750000 0.937500 0.000000 +vt 0.781250 0.937500 0.000000 +vt 0.812500 0.937500 0.000000 +vt 0.843750 0.937500 0.000000 +vt 0.875000 0.937500 0.000000 +vt 0.906250 0.937500 0.000000 +vt 0.937500 0.937500 0.000000 +vt 0.968750 0.937500 0.000000 +vt 1.000000 0.937500 0.000000 +vt 0.000000 0.875000 0.000000 +vt 0.031250 0.875000 0.000000 +vt 0.062500 0.875000 0.000000 +vt 0.093750 0.875000 0.000000 +vt 0.125000 0.875000 0.000000 +vt 0.156250 0.875000 0.000000 +vt 0.187500 0.875000 0.000000 +vt 0.218750 0.875000 0.000000 +vt 0.250000 0.875000 0.000000 +vt 0.281250 0.875000 0.000000 +vt 0.312500 0.875000 0.000000 +vt 0.343750 0.875000 0.000000 +vt 0.375000 0.875000 0.000000 +vt 0.406250 0.875000 0.000000 +vt 0.437500 0.875000 0.000000 +vt 0.468750 0.875000 0.000000 +vt 0.500000 0.875000 0.000000 +vt 0.531250 0.875000 0.000000 +vt 0.562500 0.875000 0.000000 +vt 0.593750 0.875000 0.000000 +vt 0.625000 0.875000 0.000000 +vt 0.656250 0.875000 0.000000 +vt 0.687500 0.875000 0.000000 +vt 0.718750 0.875000 0.000000 +vt 0.750000 0.875000 0.000000 +vt 0.781250 0.875000 0.000000 +vt 0.812500 0.875000 0.000000 +vt 0.843750 0.875000 0.000000 +vt 0.875000 0.875000 0.000000 +vt 0.906250 0.875000 0.000000 +vt 0.937500 0.875000 0.000000 +vt 0.968750 0.875000 0.000000 +vt 1.000000 0.875000 0.000000 +vt 0.000000 0.812500 0.000000 +vt 0.031250 0.812500 0.000000 +vt 0.062500 0.812500 0.000000 +vt 0.093750 0.812500 0.000000 +vt 0.125000 0.812500 0.000000 +vt 0.156250 0.812500 0.000000 +vt 0.187500 0.812500 0.000000 +vt 0.218750 0.812500 0.000000 +vt 0.250000 0.812500 0.000000 +vt 0.281250 0.812500 0.000000 +vt 0.312500 0.812500 0.000000 +vt 0.343750 0.812500 0.000000 +vt 0.375000 0.812500 0.000000 +vt 0.406250 0.812500 0.000000 +vt 0.437500 0.812500 0.000000 +vt 0.468750 0.812500 0.000000 +vt 0.500000 0.812500 0.000000 +vt 0.531250 0.812500 0.000000 +vt 0.562500 0.812500 0.000000 +vt 0.593750 0.812500 0.000000 +vt 0.625000 0.812500 0.000000 +vt 0.656250 0.812500 0.000000 +vt 0.687500 0.812500 0.000000 +vt 0.718750 0.812500 0.000000 +vt 0.750000 0.812500 0.000000 +vt 0.781250 0.812500 0.000000 +vt 0.812500 0.812500 0.000000 +vt 0.843750 0.812500 0.000000 +vt 0.875000 0.812500 0.000000 +vt 0.906250 0.812500 0.000000 +vt 0.937500 0.812500 0.000000 +vt 0.968750 0.812500 0.000000 +vt 1.000000 0.812500 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.031250 0.750000 0.000000 +vt 0.062500 0.750000 0.000000 +vt 0.093750 0.750000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.156250 0.750000 0.000000 +vt 0.187500 0.750000 0.000000 +vt 0.218750 0.750000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.281250 0.750000 0.000000 +vt 0.312500 0.750000 0.000000 +vt 0.343750 0.750000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.406250 0.750000 0.000000 +vt 0.437500 0.750000 0.000000 +vt 0.468750 0.750000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.531250 0.750000 0.000000 +vt 0.562500 0.750000 0.000000 +vt 0.593750 0.750000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.656250 0.750000 0.000000 +vt 0.687500 0.750000 0.000000 +vt 0.718750 0.750000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.781250 0.750000 0.000000 +vt 0.812500 0.750000 0.000000 +vt 0.843750 0.750000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.906250 0.750000 0.000000 +vt 0.937500 0.750000 0.000000 +vt 0.968750 0.750000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 0.000000 0.687500 0.000000 +vt 0.031250 0.687500 0.000000 +vt 0.062500 0.687500 0.000000 +vt 0.093750 0.687500 0.000000 +vt 0.125000 0.687500 0.000000 +vt 0.156250 0.687500 0.000000 +vt 0.187500 0.687500 0.000000 +vt 0.218750 0.687500 0.000000 +vt 0.250000 0.687500 0.000000 +vt 0.281250 0.687500 0.000000 +vt 0.312500 0.687500 0.000000 +vt 0.343750 0.687500 0.000000 +vt 0.375000 0.687500 0.000000 +vt 0.406250 0.687500 0.000000 +vt 0.437500 0.687500 0.000000 +vt 0.468750 0.687500 0.000000 +vt 0.500000 0.687500 0.000000 +vt 0.531250 0.687500 0.000000 +vt 0.562500 0.687500 0.000000 +vt 0.593750 0.687500 0.000000 +vt 0.625000 0.687500 0.000000 +vt 0.656250 0.687500 0.000000 +vt 0.687500 0.687500 0.000000 +vt 0.718750 0.687500 0.000000 +vt 0.750000 0.687500 0.000000 +vt 0.781250 0.687500 0.000000 +vt 0.812500 0.687500 0.000000 +vt 0.843750 0.687500 0.000000 +vt 0.875000 0.687500 0.000000 +vt 0.906250 0.687500 0.000000 +vt 0.937500 0.687500 0.000000 +vt 0.968750 0.687500 0.000000 +vt 1.000000 0.687500 0.000000 +vt 0.000000 0.625000 0.000000 +vt 0.031250 0.625000 0.000000 +vt 0.062500 0.625000 0.000000 +vt 0.093750 0.625000 0.000000 +vt 0.125000 0.625000 0.000000 +vt 0.156250 0.625000 0.000000 +vt 0.187500 0.625000 0.000000 +vt 0.218750 0.625000 0.000000 +vt 0.250000 0.625000 0.000000 +vt 0.281250 0.625000 0.000000 +vt 0.312500 0.625000 0.000000 +vt 0.343750 0.625000 0.000000 +vt 0.375000 0.625000 0.000000 +vt 0.406250 0.625000 0.000000 +vt 0.437500 0.625000 0.000000 +vt 0.468750 0.625000 0.000000 +vt 0.500000 0.625000 0.000000 +vt 0.531250 0.625000 0.000000 +vt 0.562500 0.625000 0.000000 +vt 0.593750 0.625000 0.000000 +vt 0.625000 0.625000 0.000000 +vt 0.656250 0.625000 0.000000 +vt 0.687500 0.625000 0.000000 +vt 0.718750 0.625000 0.000000 +vt 0.750000 0.625000 0.000000 +vt 0.781250 0.625000 0.000000 +vt 0.812500 0.625000 0.000000 +vt 0.843750 0.625000 0.000000 +vt 0.875000 0.625000 0.000000 +vt 0.906250 0.625000 0.000000 +vt 0.937500 0.625000 0.000000 +vt 0.968750 0.625000 0.000000 +vt 1.000000 0.625000 0.000000 +vt 0.000000 0.562500 0.000000 +vt 0.031250 0.562500 0.000000 +vt 0.062500 0.562500 0.000000 +vt 0.093750 0.562500 0.000000 +vt 0.125000 0.562500 0.000000 +vt 0.156250 0.562500 0.000000 +vt 0.187500 0.562500 0.000000 +vt 0.218750 0.562500 0.000000 +vt 0.250000 0.562500 0.000000 +vt 0.281250 0.562500 0.000000 +vt 0.312500 0.562500 0.000000 +vt 0.343750 0.562500 0.000000 +vt 0.375000 0.562500 0.000000 +vt 0.406250 0.562500 0.000000 +vt 0.437500 0.562500 0.000000 +vt 0.468750 0.562500 0.000000 +vt 0.500000 0.562500 0.000000 +vt 0.531250 0.562500 0.000000 +vt 0.562500 0.562500 0.000000 +vt 0.593750 0.562500 0.000000 +vt 0.625000 0.562500 0.000000 +vt 0.656250 0.562500 0.000000 +vt 0.687500 0.562500 0.000000 +vt 0.718750 0.562500 0.000000 +vt 0.750000 0.562500 0.000000 +vt 0.781250 0.562500 0.000000 +vt 0.812500 0.562500 0.000000 +vt 0.843750 0.562500 0.000000 +vt 0.875000 0.562500 0.000000 +vt 0.906250 0.562500 0.000000 +vt 0.937500 0.562500 0.000000 +vt 0.968750 0.562500 0.000000 +vt 1.000000 0.562500 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.031250 0.500000 0.000000 +vt 0.062500 0.500000 0.000000 +vt 0.093750 0.500000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.156250 0.500000 0.000000 +vt 0.187500 0.500000 0.000000 +vt 0.218750 0.500000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.281250 0.500000 0.000000 +vt 0.312500 0.500000 0.000000 +vt 0.343750 0.500000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.406250 0.500000 0.000000 +vt 0.437500 0.500000 0.000000 +vt 0.468750 0.500000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.531250 0.500000 0.000000 +vt 0.562500 0.500000 0.000000 +vt 0.593750 0.500000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.656250 0.500000 0.000000 +vt 0.687500 0.500000 0.000000 +vt 0.718750 0.500000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.781250 0.500000 0.000000 +vt 0.812500 0.500000 0.000000 +vt 0.843750 0.500000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.906250 0.500000 0.000000 +vt 0.937500 0.500000 0.000000 +vt 0.968750 0.500000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 0.000000 0.437500 0.000000 +vt 0.031250 0.437500 0.000000 +vt 0.062500 0.437500 0.000000 +vt 0.093750 0.437500 0.000000 +vt 0.125000 0.437500 0.000000 +vt 0.156250 0.437500 0.000000 +vt 0.187500 0.437500 0.000000 +vt 0.218750 0.437500 0.000000 +vt 0.250000 0.437500 0.000000 +vt 0.281250 0.437500 0.000000 +vt 0.312500 0.437500 0.000000 +vt 0.343750 0.437500 0.000000 +vt 0.375000 0.437500 0.000000 +vt 0.406250 0.437500 0.000000 +vt 0.437500 0.437500 0.000000 +vt 0.468750 0.437500 0.000000 +vt 0.500000 0.437500 0.000000 +vt 0.531250 0.437500 0.000000 +vt 0.562500 0.437500 0.000000 +vt 0.593750 0.437500 0.000000 +vt 0.625000 0.437500 0.000000 +vt 0.656250 0.437500 0.000000 +vt 0.687500 0.437500 0.000000 +vt 0.718750 0.437500 0.000000 +vt 0.750000 0.437500 0.000000 +vt 0.781250 0.437500 0.000000 +vt 0.812500 0.437500 0.000000 +vt 0.843750 0.437500 0.000000 +vt 0.875000 0.437500 0.000000 +vt 0.906250 0.437500 0.000000 +vt 0.937500 0.437500 0.000000 +vt 0.968750 0.437500 0.000000 +vt 1.000000 0.437500 0.000000 +vt 0.000000 0.375000 0.000000 +vt 0.031250 0.375000 0.000000 +vt 0.062500 0.375000 0.000000 +vt 0.093750 0.375000 0.000000 +vt 0.125000 0.375000 0.000000 +vt 0.156250 0.375000 0.000000 +vt 0.187500 0.375000 0.000000 +vt 0.218750 0.375000 0.000000 +vt 0.250000 0.375000 0.000000 +vt 0.281250 0.375000 0.000000 +vt 0.312500 0.375000 0.000000 +vt 0.343750 0.375000 0.000000 +vt 0.375000 0.375000 0.000000 +vt 0.406250 0.375000 0.000000 +vt 0.437500 0.375000 0.000000 +vt 0.468750 0.375000 0.000000 +vt 0.500000 0.375000 0.000000 +vt 0.531250 0.375000 0.000000 +vt 0.562500 0.375000 0.000000 +vt 0.593750 0.375000 0.000000 +vt 0.625000 0.375000 0.000000 +vt 0.656250 0.375000 0.000000 +vt 0.687500 0.375000 0.000000 +vt 0.718750 0.375000 0.000000 +vt 0.750000 0.375000 0.000000 +vt 0.781250 0.375000 0.000000 +vt 0.812500 0.375000 0.000000 +vt 0.843750 0.375000 0.000000 +vt 0.875000 0.375000 0.000000 +vt 0.906250 0.375000 0.000000 +vt 0.937500 0.375000 0.000000 +vt 0.968750 0.375000 0.000000 +vt 1.000000 0.375000 0.000000 +vt 0.000000 0.312500 0.000000 +vt 0.031250 0.312500 0.000000 +vt 0.062500 0.312500 0.000000 +vt 0.093750 0.312500 0.000000 +vt 0.125000 0.312500 0.000000 +vt 0.156250 0.312500 0.000000 +vt 0.187500 0.312500 0.000000 +vt 0.218750 0.312500 0.000000 +vt 0.250000 0.312500 0.000000 +vt 0.281250 0.312500 0.000000 +vt 0.312500 0.312500 0.000000 +vt 0.343750 0.312500 0.000000 +vt 0.375000 0.312500 0.000000 +vt 0.406250 0.312500 0.000000 +vt 0.437500 0.312500 0.000000 +vt 0.468750 0.312500 0.000000 +vt 0.500000 0.312500 0.000000 +vt 0.531250 0.312500 0.000000 +vt 0.562500 0.312500 0.000000 +vt 0.593750 0.312500 0.000000 +vt 0.625000 0.312500 0.000000 +vt 0.656250 0.312500 0.000000 +vt 0.687500 0.312500 0.000000 +vt 0.718750 0.312500 0.000000 +vt 0.750000 0.312500 0.000000 +vt 0.781250 0.312500 0.000000 +vt 0.812500 0.312500 0.000000 +vt 0.843750 0.312500 0.000000 +vt 0.875000 0.312500 0.000000 +vt 0.906250 0.312500 0.000000 +vt 0.937500 0.312500 0.000000 +vt 0.968750 0.312500 0.000000 +vt 1.000000 0.312500 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.031250 0.250000 0.000000 +vt 0.062500 0.250000 0.000000 +vt 0.093750 0.250000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.156250 0.250000 0.000000 +vt 0.187500 0.250000 0.000000 +vt 0.218750 0.250000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.281250 0.250000 0.000000 +vt 0.312500 0.250000 0.000000 +vt 0.343750 0.250000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.406250 0.250000 0.000000 +vt 0.437500 0.250000 0.000000 +vt 0.468750 0.250000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.531250 0.250000 0.000000 +vt 0.562500 0.250000 0.000000 +vt 0.593750 0.250000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.656250 0.250000 0.000000 +vt 0.687500 0.250000 0.000000 +vt 0.718750 0.250000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.781250 0.250000 0.000000 +vt 0.812500 0.250000 0.000000 +vt 0.843750 0.250000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.906250 0.250000 0.000000 +vt 0.937500 0.250000 0.000000 +vt 0.968750 0.250000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 0.000000 0.187500 0.000000 +vt 0.031250 0.187500 0.000000 +vt 0.062500 0.187500 0.000000 +vt 0.093750 0.187500 0.000000 +vt 0.125000 0.187500 0.000000 +vt 0.156250 0.187500 0.000000 +vt 0.187500 0.187500 0.000000 +vt 0.218750 0.187500 0.000000 +vt 0.250000 0.187500 0.000000 +vt 0.281250 0.187500 0.000000 +vt 0.312500 0.187500 0.000000 +vt 0.343750 0.187500 0.000000 +vt 0.375000 0.187500 0.000000 +vt 0.406250 0.187500 0.000000 +vt 0.437500 0.187500 0.000000 +vt 0.468750 0.187500 0.000000 +vt 0.500000 0.187500 0.000000 +vt 0.531250 0.187500 0.000000 +vt 0.562500 0.187500 0.000000 +vt 0.593750 0.187500 0.000000 +vt 0.625000 0.187500 0.000000 +vt 0.656250 0.187500 0.000000 +vt 0.687500 0.187500 0.000000 +vt 0.718750 0.187500 0.000000 +vt 0.750000 0.187500 0.000000 +vt 0.781250 0.187500 0.000000 +vt 0.812500 0.187500 0.000000 +vt 0.843750 0.187500 0.000000 +vt 0.875000 0.187500 0.000000 +vt 0.906250 0.187500 0.000000 +vt 0.937500 0.187500 0.000000 +vt 0.968750 0.187500 0.000000 +vt 1.000000 0.187500 0.000000 +vt 0.000000 0.125000 0.000000 +vt 0.031250 0.125000 0.000000 +vt 0.062500 0.125000 0.000000 +vt 0.093750 0.125000 0.000000 +vt 0.125000 0.125000 0.000000 +vt 0.156250 0.125000 0.000000 +vt 0.187500 0.125000 0.000000 +vt 0.218750 0.125000 0.000000 +vt 0.250000 0.125000 0.000000 +vt 0.281250 0.125000 0.000000 +vt 0.312500 0.125000 0.000000 +vt 0.343750 0.125000 0.000000 +vt 0.375000 0.125000 0.000000 +vt 0.406250 0.125000 0.000000 +vt 0.437500 0.125000 0.000000 +vt 0.468750 0.125000 0.000000 +vt 0.500000 0.125000 0.000000 +vt 0.531250 0.125000 0.000000 +vt 0.562500 0.125000 0.000000 +vt 0.593750 0.125000 0.000000 +vt 0.625000 0.125000 0.000000 +vt 0.656250 0.125000 0.000000 +vt 0.687500 0.125000 0.000000 +vt 0.718750 0.125000 0.000000 +vt 0.750000 0.125000 0.000000 +vt 0.781250 0.125000 0.000000 +vt 0.812500 0.125000 0.000000 +vt 0.843750 0.125000 0.000000 +vt 0.875000 0.125000 0.000000 +vt 0.906250 0.125000 0.000000 +vt 0.937500 0.125000 0.000000 +vt 0.968750 0.125000 0.000000 +vt 1.000000 0.125000 0.000000 +vt 0.000000 0.062500 0.000000 +vt 0.031250 0.062500 0.000000 +vt 0.062500 0.062500 0.000000 +vt 0.093750 0.062500 0.000000 +vt 0.125000 0.062500 0.000000 +vt 0.156250 0.062500 0.000000 +vt 0.187500 0.062500 0.000000 +vt 0.218750 0.062500 0.000000 +vt 0.250000 0.062500 0.000000 +vt 0.281250 0.062500 0.000000 +vt 0.312500 0.062500 0.000000 +vt 0.343750 0.062500 0.000000 +vt 0.375000 0.062500 0.000000 +vt 0.406250 0.062500 0.000000 +vt 0.437500 0.062500 0.000000 +vt 0.468750 0.062500 0.000000 +vt 0.500000 0.062500 0.000000 +vt 0.531250 0.062500 0.000000 +vt 0.562500 0.062500 0.000000 +vt 0.593750 0.062500 0.000000 +vt 0.625000 0.062500 0.000000 +vt 0.656250 0.062500 0.000000 +vt 0.687500 0.062500 0.000000 +vt 0.718750 0.062500 0.000000 +vt 0.750000 0.062500 0.000000 +vt 0.781250 0.062500 0.000000 +vt 0.812500 0.062500 0.000000 +vt 0.843750 0.062500 0.000000 +vt 0.875000 0.062500 0.000000 +vt 0.906250 0.062500 0.000000 +vt 0.937500 0.062500 0.000000 +vt 0.968750 0.062500 0.000000 +vt 1.000000 0.062500 0.000000 +vt 0.000000 -0.000000 0.000000 +vt 0.031250 -0.000000 0.000000 +vt 0.062500 -0.000000 0.000000 +vt 0.093750 -0.000000 0.000000 +vt 0.125000 -0.000000 0.000000 +vt 0.156250 -0.000000 0.000000 +vt 0.187500 -0.000000 0.000000 +vt 0.218750 -0.000000 0.000000 +vt 0.250000 -0.000000 0.000000 +vt 0.281250 -0.000000 0.000000 +vt 0.312500 -0.000000 0.000000 +vt 0.343750 -0.000000 0.000000 +vt 0.375000 -0.000000 0.000000 +vt 0.406250 -0.000000 0.000000 +vt 0.437500 -0.000000 0.000000 +vt 0.468750 -0.000000 0.000000 +vt 0.500000 -0.000000 0.000000 +vt 0.531250 -0.000000 0.000000 +vt 0.562500 -0.000000 0.000000 +vt 0.593750 -0.000000 0.000000 +vt 0.625000 -0.000000 0.000000 +vt 0.656250 -0.000000 0.000000 +vt 0.687500 -0.000000 0.000000 +vt 0.718750 -0.000000 0.000000 +vt 0.750000 -0.000000 0.000000 +vt 0.781250 -0.000000 0.000000 +vt 0.812500 -0.000000 0.000000 +vt 0.843750 -0.000000 0.000000 +vt 0.875000 -0.000000 0.000000 +vt 0.906250 -0.000000 0.000000 +vt 0.937500 -0.000000 0.000000 +vt 0.968750 -0.000000 0.000000 +vt 1.000000 -0.000000 0.000000 +# 561 texture vertices + +vn 0.000000 1.000000 -0.000000 +vn -0.005744 0.976740 -0.214348 +vn -0.047451 0.976740 -0.209109 +vn -0.087334 0.976740 -0.195834 +vn -0.123861 0.976740 -0.175033 +vn -0.155629 0.976740 -0.147506 +vn -0.181415 0.976740 -0.114310 +vn -0.200230 0.976740 -0.076721 +vn -0.211350 0.976740 -0.036184 +vn -0.214348 0.976740 0.005744 +vn -0.209109 0.976740 0.047451 +vn -0.195834 0.976740 0.087334 +vn -0.175033 0.976740 0.123861 +vn -0.147506 0.976740 0.155629 +vn -0.114310 0.976740 0.181415 +vn -0.076721 0.976740 0.200230 +vn -0.036184 0.976740 0.211350 +vn 0.005744 0.976740 0.214348 +vn 0.047451 0.976740 0.209109 +vn 0.087334 0.976740 0.195834 +vn 0.123862 0.976740 0.175033 +vn 0.155629 0.976740 0.147505 +vn 0.181415 0.976740 0.114309 +vn 0.200230 0.976740 0.076721 +vn 0.211350 0.976740 0.036184 +vn 0.214348 0.976740 -0.005744 +vn 0.209109 0.976740 -0.047451 +vn 0.195834 0.976740 -0.087334 +vn 0.175033 0.976740 -0.123862 +vn 0.147505 0.976740 -0.155629 +vn 0.114309 0.976740 -0.181415 +vn 0.076721 0.976740 -0.200230 +vn 0.036184 0.976740 -0.211350 +vn -0.002983 0.923888 -0.382651 +vn -0.077577 0.923888 -0.374717 +vn -0.149190 0.923888 -0.352382 +vn -0.215070 0.923888 -0.316506 +vn -0.272685 0.923888 -0.268466 +vn -0.319820 0.923888 -0.210109 +vn -0.354665 0.923888 -0.143678 +vn -0.375881 0.923888 -0.071726 +vn -0.382651 0.923888 0.002983 +vn -0.374717 0.923888 0.077578 +vn -0.352382 0.923888 0.149191 +vn -0.316506 0.923888 0.215070 +vn -0.268466 0.923888 0.272685 +vn -0.210109 0.923888 0.319821 +vn -0.143678 0.923888 0.354666 +vn -0.071725 0.923888 0.375881 +vn 0.002984 0.923888 0.382651 +vn 0.077578 0.923888 0.374717 +vn 0.149191 0.923888 0.352382 +vn 0.215071 0.923888 0.316505 +vn 0.272685 0.923888 0.268466 +vn 0.319821 0.923888 0.210109 +vn 0.354666 0.923888 0.143678 +vn 0.375881 0.923888 0.071725 +vn 0.382651 0.923888 -0.002984 +vn 0.374717 0.923888 -0.077578 +vn 0.352382 0.923888 -0.149191 +vn 0.316505 0.923888 -0.215071 +vn 0.268465 0.923888 -0.272685 +vn 0.210109 0.923888 -0.319821 +vn 0.143678 0.923888 -0.354666 +vn 0.071725 0.923888 -0.375881 +vn -0.002681 0.831490 -0.555533 +vn -0.111008 0.831490 -0.544335 +vn -0.215070 0.831490 -0.512219 +vn -0.310866 0.831490 -0.460419 +vn -0.394716 0.831490 -0.390925 +vn -0.463398 0.831490 -0.306408 +vn -0.514271 0.831490 -0.210116 +vn -0.545381 0.831490 -0.105750 +vn -0.555533 0.831490 0.002681 +vn -0.544335 0.831490 0.111008 +vn -0.512219 0.831490 0.215070 +vn -0.460419 0.831490 0.310867 +vn -0.390925 0.831490 0.394717 +vn -0.306408 0.831490 0.463398 +vn -0.210116 0.831490 0.514271 +vn -0.105749 0.831490 0.545381 +vn 0.002681 0.831490 0.555533 +vn 0.111009 0.831490 0.544335 +vn 0.215070 0.831490 0.512219 +vn 0.310867 0.831490 0.460419 +vn 0.394717 0.831490 0.390925 +vn 0.463398 0.831490 0.306408 +vn 0.514271 0.831490 0.210116 +vn 0.545381 0.831490 0.105749 +vn 0.555533 0.831490 -0.002681 +vn 0.544335 0.831490 -0.111009 +vn 0.512219 0.831490 -0.215071 +vn 0.460419 0.831490 -0.310867 +vn 0.390925 0.831490 -0.394717 +vn 0.306408 0.831490 -0.463398 +vn 0.210115 0.831490 -0.514271 +vn 0.105749 0.831490 -0.545381 +vn -0.002276 0.707138 -0.707072 +vn -0.140175 0.707138 -0.693042 +vn -0.272687 0.707138 -0.652379 +vn -0.394720 0.707138 -0.586645 +vn -0.501585 0.707138 -0.498367 +vn -0.589173 0.707138 -0.390936 +vn -0.654120 0.707138 -0.268482 +vn -0.693930 0.707138 -0.135711 +vn -0.707072 0.707138 0.002276 +vn -0.693042 0.707138 0.140175 +vn -0.652379 0.707138 0.272687 +vn -0.586645 0.707138 0.394721 +vn -0.498366 0.707138 0.501585 +vn -0.390936 0.707138 0.589174 +vn -0.268482 0.707138 0.654121 +vn -0.135711 0.707138 0.693930 +vn 0.002276 0.707138 0.707072 +vn 0.140176 0.707138 0.693042 +vn 0.272688 0.707138 0.652378 +vn 0.394721 0.707138 0.586644 +vn 0.501585 0.707138 0.498366 +vn 0.589174 0.707138 0.390935 +vn 0.654121 0.707138 0.268482 +vn 0.693930 0.707138 0.135710 +vn 0.707072 0.707138 -0.002277 +vn 0.693042 0.707138 -0.140176 +vn 0.652378 0.707138 -0.272688 +vn 0.586644 0.707138 -0.394721 +vn 0.498366 0.707138 -0.501585 +vn 0.390935 0.707138 -0.589174 +vn 0.268481 0.707138 -0.654121 +vn 0.135710 0.707138 -0.693930 +vn -0.001785 0.555605 -0.831445 +vn -0.163957 0.555605 -0.815120 +vn -0.319829 0.555605 -0.767472 +vn -0.463410 0.555605 -0.690329 +vn -0.589182 0.555605 -0.586658 +vn -0.692312 0.555605 -0.460442 +vn -0.768838 0.555605 -0.316531 +vn -0.815817 0.555605 -0.160456 +vn -0.831445 0.555605 0.001785 +vn -0.815120 0.555605 0.163957 +vn -0.767471 0.555605 0.319829 +vn -0.690329 0.555605 0.463410 +vn -0.586658 0.555605 0.589182 +vn -0.460441 0.555605 0.692313 +vn -0.316531 0.555605 0.768838 +vn -0.160456 0.555605 0.815817 +vn 0.001785 0.555605 0.831445 +vn 0.163958 0.555605 0.815120 +vn 0.319830 0.555605 0.767471 +vn 0.463410 0.555605 0.690329 +vn 0.589183 0.555605 0.586657 +vn 0.692313 0.555605 0.460441 +vn 0.768838 0.555605 0.316530 +vn 0.815817 0.555605 0.160455 +vn 0.831445 0.555605 -0.001786 +vn 0.815120 0.555605 -0.163958 +vn 0.767471 0.555605 -0.319830 +vn 0.690329 0.555605 -0.463411 +vn 0.586657 0.555605 -0.589183 +vn 0.460441 0.555605 -0.692313 +vn 0.316530 0.555605 -0.768838 +vn 0.160455 0.555605 -0.815817 +vn -0.001228 0.382713 -0.923866 +vn -0.181441 0.382713 -0.905875 +vn -0.354682 0.382713 -0.853072 +vn -0.514293 0.382713 -0.767485 +vn -0.654140 0.382713 -0.652404 +vn -0.768849 0.382713 -0.512252 +vn -0.854011 0.382713 -0.352414 +vn -0.906354 0.382713 -0.179033 +vn -0.923866 0.382713 0.001228 +vn -0.905875 0.382713 0.181441 +vn -0.853071 0.382713 0.354683 +vn -0.767485 0.382713 0.514294 +vn -0.652404 0.382713 0.654140 +vn -0.512252 0.382713 0.768849 +vn -0.352414 0.382713 0.854011 +vn -0.179033 0.382713 0.906354 +vn 0.001228 0.382713 0.923866 +vn 0.181442 0.382713 0.905875 +vn 0.354683 0.382713 0.853071 +vn 0.514294 0.382713 0.767484 +vn 0.654141 0.382713 0.652403 +vn 0.768849 0.382713 0.512251 +vn 0.854011 0.382713 0.352413 +vn 0.906354 0.382713 0.179032 +vn 0.923866 0.382713 -0.001229 +vn 0.905875 0.382713 -0.181443 +vn 0.853071 0.382713 -0.354684 +vn 0.767484 0.382713 -0.514295 +vn 0.652403 0.382713 -0.654141 +vn 0.512251 0.382713 -0.768850 +vn 0.352413 0.382713 -0.854012 +vn 0.179032 0.382713 -0.906354 +vn -0.000626 0.195108 -0.980782 +vn -0.191954 0.195108 -0.961814 +vn -0.375906 0.195108 -0.905885 +vn -0.545413 0.195108 -0.815143 +vn -0.693959 0.195108 -0.693075 +vn -0.815837 0.195108 -0.544373 +vn -0.906363 0.195108 -0.374751 +vn -0.962058 0.195108 -0.190728 +vn -0.980782 0.195108 0.000625 +vn -0.961814 0.195108 0.191954 +vn -0.905885 0.195108 0.375907 +vn -0.815143 0.195108 0.545413 +vn -0.693075 0.195108 0.693960 +vn -0.544373 0.195108 0.815838 +vn -0.374751 0.195108 0.906364 +vn -0.190727 0.195108 0.962058 +vn 0.000626 0.195108 0.980782 +vn 0.191955 0.195108 0.961814 +vn 0.375907 0.195108 0.905884 +vn 0.545414 0.195108 0.815142 +vn 0.693960 0.195108 0.693075 +vn 0.815838 0.195108 0.544372 +vn 0.906364 0.195108 0.374750 +vn 0.962058 0.195108 0.190727 +vn 0.980782 0.195108 -0.000627 +vn 0.961814 0.195108 -0.191956 +vn 0.905884 0.195108 -0.375908 +vn 0.815142 0.195108 -0.545414 +vn 0.693074 0.195108 -0.693961 +vn 0.544372 0.195108 -0.815839 +vn 0.374750 0.195108 -0.906364 +vn 0.190726 0.195108 -0.962058 +vn -0.000000 -0.000000 -1.000000 +vn -0.195090 -0.000000 -0.980785 +vn -0.382683 0.000000 -0.923880 +vn -0.555570 0.000000 -0.831470 +vn -0.707107 0.000000 -0.707107 +vn -0.831470 0.000000 -0.555570 +vn -0.923880 0.000000 -0.382683 +vn -0.980785 0.000000 -0.195090 +vn -1.000000 0.000000 0.000000 +vn -0.980785 -0.000000 0.195091 +vn -0.923879 0.000000 0.382684 +vn -0.831469 0.000000 0.555571 +vn -0.707106 0.000000 0.707107 +vn -0.555570 0.000000 0.831470 +vn -0.382683 -0.000000 0.923880 +vn -0.195089 0.000000 0.980785 +vn 0.000001 -0.000000 1.000000 +vn 0.195091 0.000000 0.980785 +vn 0.382685 0.000000 0.923879 +vn 0.555571 0.000000 0.831469 +vn 0.707108 0.000000 0.707106 +vn 0.831470 0.000000 0.555569 +vn 0.923880 0.000000 0.382682 +vn 0.980786 0.000000 0.195089 +vn 1.000000 0.000000 -0.000002 +vn 0.980785 -0.000000 -0.195092 +vn 0.923879 0.000000 -0.382685 +vn 0.831469 0.000000 -0.555572 +vn 0.707106 0.000000 -0.707108 +vn 0.555569 0.000000 -0.831471 +vn 0.382681 0.000000 -0.923880 +vn 0.195089 0.000000 -0.980786 +vn 0.000624 -0.195108 -0.980782 +vn -0.190728 -0.195108 -0.962058 +vn -0.374751 -0.195108 -0.906363 +vn -0.544373 -0.195107 -0.815837 +vn -0.693075 -0.195107 -0.693959 +vn -0.815143 -0.195108 -0.545413 +vn -0.905885 -0.195108 -0.375906 +vn -0.961814 -0.195107 -0.191954 +vn -0.980782 -0.195107 -0.000625 +vn -0.962058 -0.195107 0.190728 +vn -0.906363 -0.195107 0.374752 +vn -0.815837 -0.195108 0.544374 +vn -0.693959 -0.195108 0.693076 +vn -0.545412 -0.195107 0.815143 +vn -0.375906 -0.195107 0.905885 +vn -0.191953 -0.195108 0.961814 +vn -0.000624 -0.195107 0.980782 +vn 0.190729 -0.195107 0.962058 +vn 0.374753 -0.195107 0.906363 +vn 0.544374 -0.195107 0.815837 +vn 0.693076 -0.195108 0.693959 +vn 0.815144 -0.195108 0.545412 +vn 0.905885 -0.195108 0.375905 +vn 0.961815 -0.195108 0.191953 +vn 0.980782 -0.195108 0.000623 +vn 0.962058 -0.195107 -0.190730 +vn 0.906363 -0.195108 -0.374753 +vn 0.815836 -0.195107 -0.544375 +vn 0.693958 -0.195107 -0.693077 +vn 0.545411 -0.195108 -0.815144 +vn 0.375904 -0.195107 -0.905886 +vn 0.191953 -0.195107 -0.961815 +vn 0.001227 -0.382713 -0.923866 +vn -0.179034 -0.382713 -0.906354 +vn -0.352414 -0.382713 -0.854011 +vn -0.512252 -0.382713 -0.768849 +vn -0.652404 -0.382713 -0.654140 +vn -0.767485 -0.382713 -0.514293 +vn -0.853072 -0.382713 -0.354682 +vn -0.905875 -0.382713 -0.181441 +vn -0.923866 -0.382713 -0.001227 +vn -0.906354 -0.382713 0.179034 +vn -0.854011 -0.382713 0.352415 +vn -0.768848 -0.382713 0.512253 +vn -0.654140 -0.382713 0.652405 +vn -0.514293 -0.382713 0.767485 +vn -0.354682 -0.382713 0.853072 +vn -0.181440 -0.382713 0.905875 +vn -0.001227 -0.382713 0.923866 +vn 0.179035 -0.382713 0.906354 +vn 0.352415 -0.382713 0.854011 +vn 0.512253 -0.382713 0.768848 +vn 0.652405 -0.382713 0.654139 +vn 0.767486 -0.382713 0.514292 +vn 0.853072 -0.382713 0.354681 +vn 0.905875 -0.382713 0.181440 +vn 0.923866 -0.382713 0.001226 +vn 0.906354 -0.382713 -0.179035 +vn 0.854010 -0.382713 -0.352416 +vn 0.768848 -0.382713 -0.512254 +vn 0.654139 -0.382713 -0.652406 +vn 0.514292 -0.382713 -0.767486 +vn 0.354681 -0.382713 -0.853072 +vn 0.181440 -0.382713 -0.905875 +vn 0.001784 -0.555605 -0.831445 +vn -0.160456 -0.555605 -0.815817 +vn -0.316531 -0.555605 -0.768838 +vn -0.460442 -0.555605 -0.692312 +vn -0.586658 -0.555605 -0.589182 +vn -0.690329 -0.555605 -0.463410 +vn -0.767472 -0.555605 -0.319829 +vn -0.815121 -0.555605 -0.163957 +vn -0.831445 -0.555605 -0.001784 +vn -0.815817 -0.555605 0.160457 +vn -0.768837 -0.555605 0.316532 +vn -0.692312 -0.555605 0.460442 +vn -0.589182 -0.555605 0.586659 +vn -0.463409 -0.555605 0.690330 +vn -0.319828 -0.555605 0.767472 +vn -0.163956 -0.555605 0.815121 +vn -0.001784 -0.555605 0.831445 +vn 0.160457 -0.555605 0.815817 +vn 0.316532 -0.555605 0.768837 +vn 0.460443 -0.555605 0.692312 +vn 0.586659 -0.555605 0.589181 +vn 0.690330 -0.555605 0.463409 +vn 0.767472 -0.555605 0.319828 +vn 0.815121 -0.555605 0.163956 +vn 0.831445 -0.555605 0.001783 +vn 0.815816 -0.555605 -0.160458 +vn 0.768837 -0.555605 -0.316533 +vn 0.692312 -0.555605 -0.460443 +vn 0.589181 -0.555605 -0.586659 +vn 0.463408 -0.555605 -0.690330 +vn 0.319827 -0.555605 -0.767472 +vn 0.163956 -0.555605 -0.815121 +vn 0.002275 -0.707138 -0.707072 +vn -0.135711 -0.707138 -0.693930 +vn -0.268483 -0.707138 -0.654120 +vn -0.390936 -0.707138 -0.589173 +vn -0.498367 -0.707138 -0.501585 +vn -0.586645 -0.707138 -0.394720 +vn -0.652379 -0.707138 -0.272687 +vn -0.693042 -0.707138 -0.140175 +vn -0.707072 -0.707138 -0.002275 +vn -0.693930 -0.707138 0.135711 +vn -0.654120 -0.707138 0.268483 +vn -0.589173 -0.707138 0.390936 +vn -0.501584 -0.707138 0.498367 +vn -0.394720 -0.707138 0.586645 +vn -0.272687 -0.707138 0.652379 +vn -0.140174 -0.707138 0.693042 +vn -0.002275 -0.707138 0.707072 +vn 0.135712 -0.707138 0.693930 +vn 0.268483 -0.707138 0.654120 +vn 0.390937 -0.707138 0.589173 +vn 0.498367 -0.707138 0.501584 +vn 0.586645 -0.707138 0.394719 +vn 0.652379 -0.707138 0.272686 +vn 0.693042 -0.707138 0.140174 +vn 0.707072 -0.707138 0.002274 +vn 0.693930 -0.707138 -0.135712 +vn 0.654120 -0.707138 -0.268484 +vn 0.589173 -0.707138 -0.390937 +vn 0.501584 -0.707138 -0.498367 +vn 0.394719 -0.707138 -0.586646 +vn 0.272686 -0.707138 -0.652379 +vn 0.140174 -0.707138 -0.693042 +vn 0.002680 -0.831490 -0.555533 +vn -0.105750 -0.831490 -0.545381 +vn -0.210117 -0.831490 -0.514271 +vn -0.306408 -0.831490 -0.463398 +vn -0.390925 -0.831490 -0.394716 +vn -0.460419 -0.831490 -0.310866 +vn -0.512219 -0.831490 -0.215070 +vn -0.544335 -0.831490 -0.111008 +vn -0.555533 -0.831490 -0.002680 +vn -0.545381 -0.831490 0.105750 +vn -0.514271 -0.831490 0.210117 +vn -0.463398 -0.831490 0.306409 +vn -0.394716 -0.831490 0.390926 +vn -0.310866 -0.831490 0.460419 +vn -0.215069 -0.831491 0.512219 +vn -0.111008 -0.831490 0.544335 +vn -0.002680 -0.831490 0.555533 +vn 0.105750 -0.831490 0.545381 +vn 0.210117 -0.831490 0.514271 +vn 0.306409 -0.831490 0.463397 +vn 0.390926 -0.831490 0.394716 +vn 0.460420 -0.831490 0.310866 +vn 0.512220 -0.831490 0.215069 +vn 0.544335 -0.831490 0.111007 +vn 0.555533 -0.831490 0.002680 +vn 0.545381 -0.831490 -0.105751 +vn 0.514271 -0.831490 -0.210117 +vn 0.463397 -0.831491 -0.306409 +vn 0.394716 -0.831491 -0.390926 +vn 0.310865 -0.831490 -0.460420 +vn 0.215069 -0.831490 -0.512220 +vn 0.111007 -0.831490 -0.544335 +vn 0.002983 -0.923888 -0.382651 +vn -0.071726 -0.923888 -0.375880 +vn -0.143678 -0.923888 -0.354665 +vn -0.210109 -0.923888 -0.319820 +vn -0.268466 -0.923888 -0.272685 +vn -0.316505 -0.923888 -0.215070 +vn -0.352382 -0.923888 -0.149190 +vn -0.374717 -0.923888 -0.077577 +vn -0.382651 -0.923888 -0.002983 +vn -0.375880 -0.923888 0.071726 +vn -0.354665 -0.923888 0.143678 +vn -0.319820 -0.923888 0.210109 +vn -0.272684 -0.923888 0.268466 +vn -0.215070 -0.923888 0.316506 +vn -0.149190 -0.923888 0.352382 +vn -0.077577 -0.923888 0.374717 +vn -0.002983 -0.923888 0.382651 +vn 0.071726 -0.923888 0.375880 +vn 0.143679 -0.923888 0.354665 +vn 0.210109 -0.923888 0.319820 +vn 0.268466 -0.923888 0.272684 +vn 0.316506 -0.923888 0.215069 +vn 0.352382 -0.923888 0.149190 +vn 0.374717 -0.923888 0.077577 +vn 0.382651 -0.923888 0.002983 +vn 0.375880 -0.923888 -0.071726 +vn 0.354665 -0.923888 -0.143679 +vn 0.319820 -0.923888 -0.210110 +vn 0.272684 -0.923888 -0.268466 +vn 0.215069 -0.923888 -0.316506 +vn 0.149190 -0.923888 -0.352382 +vn 0.077577 -0.923888 -0.374717 +vn 0.005744 -0.976740 -0.214348 +vn -0.036184 -0.976740 -0.211350 +vn -0.076721 -0.976740 -0.200230 +vn -0.114310 -0.976740 -0.181415 +vn -0.147505 -0.976740 -0.155628 +vn -0.175033 -0.976740 -0.123861 +vn -0.195834 -0.976740 -0.087334 +vn -0.209109 -0.976740 -0.047451 +vn -0.214348 -0.976740 -0.005744 +vn -0.211350 -0.976740 0.036184 +vn -0.200230 -0.976740 0.076721 +vn -0.181415 -0.976740 0.114310 +vn -0.155628 -0.976740 0.147506 +vn -0.123861 -0.976740 0.175033 +vn -0.087334 -0.976740 0.195834 +vn -0.047450 -0.976740 0.209109 +vn -0.005744 -0.976740 0.214348 +vn 0.036184 -0.976740 0.211350 +vn 0.076721 -0.976740 0.200230 +vn 0.114310 -0.976740 0.181415 +vn 0.147506 -0.976740 0.155628 +vn 0.175033 -0.976740 0.123861 +vn 0.195834 -0.976740 0.087334 +vn 0.209109 -0.976740 0.047450 +vn 0.214348 -0.976740 0.005743 +vn 0.211350 -0.976740 -0.036184 +vn 0.200230 -0.976740 -0.076721 +vn 0.181415 -0.976740 -0.114310 +vn 0.155628 -0.976740 -0.147506 +vn 0.123861 -0.976740 -0.175033 +vn 0.087334 -0.976740 -0.195834 +vn 0.047450 -0.976740 -0.209109 +vn 0.000000 -1.000000 -0.000000 +# 482 vertex normals + +g default +s 1 +f 1/1/1 2/34/2 3/35/3 +f 1/2/1 3/35/3 4/36/4 +f 1/3/1 4/36/4 5/37/5 +f 1/4/1 5/37/5 6/38/6 +f 1/5/1 6/38/6 7/39/7 +f 1/6/1 7/39/7 8/40/8 +f 1/7/1 8/40/8 9/41/9 +f 1/8/1 9/41/9 10/42/10 +f 1/9/1 10/42/10 11/43/11 +f 1/10/1 11/43/11 12/44/12 +f 1/11/1 12/44/12 13/45/13 +f 1/12/1 13/45/13 14/46/14 +f 1/13/1 14/46/14 15/47/15 +f 1/14/1 15/47/15 16/48/16 +f 1/15/1 16/48/16 17/49/17 +f 1/16/1 17/49/17 18/50/18 +f 1/17/1 18/50/18 19/51/19 +f 1/18/1 19/51/19 20/52/20 +f 1/19/1 20/52/20 21/53/21 +f 1/20/1 21/53/21 22/54/22 +f 1/21/1 22/54/22 23/55/23 +f 1/22/1 23/55/23 24/56/24 +f 1/23/1 24/56/24 25/57/25 +f 1/24/1 25/57/25 26/58/26 +f 1/25/1 26/58/26 27/59/27 +f 1/26/1 27/59/27 28/60/28 +f 1/27/1 28/60/28 29/61/29 +f 1/28/1 29/61/29 30/62/30 +f 1/29/1 30/62/30 31/63/31 +f 1/30/1 31/63/31 32/64/32 +f 1/31/1 32/64/32 33/65/33 +f 1/32/1 33/65/33 2/66/2 +f 2/34/2 34/67/34 35/68/35 +f 2/34/2 35/68/35 3/35/3 +f 3/35/3 35/68/35 36/69/36 +f 3/35/3 36/69/36 4/36/4 +f 4/36/4 36/69/36 37/70/37 +f 4/36/4 37/70/37 5/37/5 +f 5/37/5 37/70/37 38/71/38 +f 5/37/5 38/71/38 6/38/6 +f 6/38/6 38/71/38 39/72/39 +f 6/38/6 39/72/39 7/39/7 +f 7/39/7 39/72/39 40/73/40 +f 7/39/7 40/73/40 8/40/8 +f 8/40/8 40/73/40 41/74/41 +f 8/40/8 41/74/41 9/41/9 +f 9/41/9 41/74/41 42/75/42 +f 9/41/9 42/75/42 10/42/10 +f 10/42/10 42/75/42 43/76/43 +f 10/42/10 43/76/43 11/43/11 +f 11/43/11 43/76/43 44/77/44 +f 11/43/11 44/77/44 12/44/12 +f 12/44/12 44/77/44 45/78/45 +f 12/44/12 45/78/45 13/45/13 +f 13/45/13 45/78/45 46/79/46 +f 13/45/13 46/79/46 14/46/14 +f 14/46/14 46/79/46 47/80/47 +f 14/46/14 47/80/47 15/47/15 +f 15/47/15 47/80/47 48/81/48 +f 15/47/15 48/81/48 16/48/16 +f 16/48/16 48/81/48 49/82/49 +f 16/48/16 49/82/49 17/49/17 +f 17/49/17 49/82/49 50/83/50 +f 17/49/17 50/83/50 18/50/18 +f 18/50/18 50/83/50 51/84/51 +f 18/50/18 51/84/51 19/51/19 +f 19/51/19 51/84/51 52/85/52 +f 19/51/19 52/85/52 20/52/20 +f 20/52/20 52/85/52 53/86/53 +f 20/52/20 53/86/53 21/53/21 +f 21/53/21 53/86/53 54/87/54 +f 21/53/21 54/87/54 22/54/22 +f 22/54/22 54/87/54 55/88/55 +f 22/54/22 55/88/55 23/55/23 +f 23/55/23 55/88/55 56/89/56 +f 23/55/23 56/89/56 24/56/24 +f 24/56/24 56/89/56 57/90/57 +f 24/56/24 57/90/57 25/57/25 +f 25/57/25 57/90/57 58/91/58 +f 25/57/25 58/91/58 26/58/26 +f 26/58/26 58/91/58 59/92/59 +f 26/58/26 59/92/59 27/59/27 +f 27/59/27 59/92/59 60/93/60 +f 27/59/27 60/93/60 28/60/28 +f 28/60/28 60/93/60 61/94/61 +f 28/60/28 61/94/61 29/61/29 +f 29/61/29 61/94/61 62/95/62 +f 29/61/29 62/95/62 30/62/30 +f 30/62/30 62/95/62 63/96/63 +f 30/62/30 63/96/63 31/63/31 +f 31/63/31 63/96/63 64/97/64 +f 31/63/31 64/97/64 32/64/32 +f 32/64/32 64/97/64 65/98/65 +f 32/64/32 65/98/65 33/65/33 +f 33/65/33 65/98/65 34/99/34 +f 33/65/33 34/99/34 2/66/2 +f 34/67/34 66/100/66 67/101/67 +f 34/67/34 67/101/67 35/68/35 +f 35/68/35 67/101/67 68/102/68 +f 35/68/35 68/102/68 36/69/36 +f 36/69/36 68/102/68 69/103/69 +f 36/69/36 69/103/69 37/70/37 +f 37/70/37 69/103/69 70/104/70 +f 37/70/37 70/104/70 38/71/38 +f 38/71/38 70/104/70 71/105/71 +f 38/71/38 71/105/71 39/72/39 +f 39/72/39 71/105/71 72/106/72 +f 39/72/39 72/106/72 40/73/40 +f 40/73/40 72/106/72 73/107/73 +f 40/73/40 73/107/73 41/74/41 +f 41/74/41 73/107/73 74/108/74 +f 41/74/41 74/108/74 42/75/42 +f 42/75/42 74/108/74 75/109/75 +f 42/75/42 75/109/75 43/76/43 +f 43/76/43 75/109/75 76/110/76 +f 43/76/43 76/110/76 44/77/44 +f 44/77/44 76/110/76 77/111/77 +f 44/77/44 77/111/77 45/78/45 +f 45/78/45 77/111/77 78/112/78 +f 45/78/45 78/112/78 46/79/46 +f 46/79/46 78/112/78 79/113/79 +f 46/79/46 79/113/79 47/80/47 +f 47/80/47 79/113/79 80/114/80 +f 47/80/47 80/114/80 48/81/48 +f 48/81/48 80/114/80 81/115/81 +f 48/81/48 81/115/81 49/82/49 +f 49/82/49 81/115/81 82/116/82 +f 49/82/49 82/116/82 50/83/50 +f 50/83/50 82/116/82 83/117/83 +f 50/83/50 83/117/83 51/84/51 +f 51/84/51 83/117/83 84/118/84 +f 51/84/51 84/118/84 52/85/52 +f 52/85/52 84/118/84 85/119/85 +f 52/85/52 85/119/85 53/86/53 +f 53/86/53 85/119/85 86/120/86 +f 53/86/53 86/120/86 54/87/54 +f 54/87/54 86/120/86 87/121/87 +f 54/87/54 87/121/87 55/88/55 +f 55/88/55 87/121/87 88/122/88 +f 55/88/55 88/122/88 56/89/56 +f 56/89/56 88/122/88 89/123/89 +f 56/89/56 89/123/89 57/90/57 +f 57/90/57 89/123/89 90/124/90 +f 57/90/57 90/124/90 58/91/58 +f 58/91/58 90/124/90 91/125/91 +f 58/91/58 91/125/91 59/92/59 +f 59/92/59 91/125/91 92/126/92 +f 59/92/59 92/126/92 60/93/60 +f 60/93/60 92/126/92 93/127/93 +f 60/93/60 93/127/93 61/94/61 +f 61/94/61 93/127/93 94/128/94 +f 61/94/61 94/128/94 62/95/62 +f 62/95/62 94/128/94 95/129/95 +f 62/95/62 95/129/95 63/96/63 +f 63/96/63 95/129/95 96/130/96 +f 63/96/63 96/130/96 64/97/64 +f 64/97/64 96/130/96 97/131/97 +f 64/97/64 97/131/97 65/98/65 +f 65/98/65 97/131/97 66/132/66 +f 65/98/65 66/132/66 34/99/34 +f 66/100/66 98/133/98 99/134/99 +f 66/100/66 99/134/99 67/101/67 +f 67/101/67 99/134/99 100/135/100 +f 67/101/67 100/135/100 68/102/68 +f 68/102/68 100/135/100 101/136/101 +f 68/102/68 101/136/101 69/103/69 +f 69/103/69 101/136/101 102/137/102 +f 69/103/69 102/137/102 70/104/70 +f 70/104/70 102/137/102 103/138/103 +f 70/104/70 103/138/103 71/105/71 +f 71/105/71 103/138/103 104/139/104 +f 71/105/71 104/139/104 72/106/72 +f 72/106/72 104/139/104 105/140/105 +f 72/106/72 105/140/105 73/107/73 +f 73/107/73 105/140/105 106/141/106 +f 73/107/73 106/141/106 74/108/74 +f 74/108/74 106/141/106 107/142/107 +f 74/108/74 107/142/107 75/109/75 +f 75/109/75 107/142/107 108/143/108 +f 75/109/75 108/143/108 76/110/76 +f 76/110/76 108/143/108 109/144/109 +f 76/110/76 109/144/109 77/111/77 +f 77/111/77 109/144/109 110/145/110 +f 77/111/77 110/145/110 78/112/78 +f 78/112/78 110/145/110 111/146/111 +f 78/112/78 111/146/111 79/113/79 +f 79/113/79 111/146/111 112/147/112 +f 79/113/79 112/147/112 80/114/80 +f 80/114/80 112/147/112 113/148/113 +f 80/114/80 113/148/113 81/115/81 +f 81/115/81 113/148/113 114/149/114 +f 81/115/81 114/149/114 82/116/82 +f 82/116/82 114/149/114 115/150/115 +f 82/116/82 115/150/115 83/117/83 +f 83/117/83 115/150/115 116/151/116 +f 83/117/83 116/151/116 84/118/84 +f 84/118/84 116/151/116 117/152/117 +f 84/118/84 117/152/117 85/119/85 +f 85/119/85 117/152/117 118/153/118 +f 85/119/85 118/153/118 86/120/86 +f 86/120/86 118/153/118 119/154/119 +f 86/120/86 119/154/119 87/121/87 +f 87/121/87 119/154/119 120/155/120 +f 87/121/87 120/155/120 88/122/88 +f 88/122/88 120/155/120 121/156/121 +f 88/122/88 121/156/121 89/123/89 +f 89/123/89 121/156/121 122/157/122 +f 89/123/89 122/157/122 90/124/90 +f 90/124/90 122/157/122 123/158/123 +f 90/124/90 123/158/123 91/125/91 +f 91/125/91 123/158/123 124/159/124 +f 91/125/91 124/159/124 92/126/92 +f 92/126/92 124/159/124 125/160/125 +f 92/126/92 125/160/125 93/127/93 +f 93/127/93 125/160/125 126/161/126 +f 93/127/93 126/161/126 94/128/94 +f 94/128/94 126/161/126 127/162/127 +f 94/128/94 127/162/127 95/129/95 +f 95/129/95 127/162/127 128/163/128 +f 95/129/95 128/163/128 96/130/96 +f 96/130/96 128/163/128 129/164/129 +f 96/130/96 129/164/129 97/131/97 +f 97/131/97 129/164/129 98/165/98 +f 97/131/97 98/165/98 66/132/66 +f 98/133/98 130/166/130 131/167/131 +f 98/133/98 131/167/131 99/134/99 +f 99/134/99 131/167/131 132/168/132 +f 99/134/99 132/168/132 100/135/100 +f 100/135/100 132/168/132 133/169/133 +f 100/135/100 133/169/133 101/136/101 +f 101/136/101 133/169/133 134/170/134 +f 101/136/101 134/170/134 102/137/102 +f 102/137/102 134/170/134 135/171/135 +f 102/137/102 135/171/135 103/138/103 +f 103/138/103 135/171/135 136/172/136 +f 103/138/103 136/172/136 104/139/104 +f 104/139/104 136/172/136 137/173/137 +f 104/139/104 137/173/137 105/140/105 +f 105/140/105 137/173/137 138/174/138 +f 105/140/105 138/174/138 106/141/106 +f 106/141/106 138/174/138 139/175/139 +f 106/141/106 139/175/139 107/142/107 +f 107/142/107 139/175/139 140/176/140 +f 107/142/107 140/176/140 108/143/108 +f 108/143/108 140/176/140 141/177/141 +f 108/143/108 141/177/141 109/144/109 +f 109/144/109 141/177/141 142/178/142 +f 109/144/109 142/178/142 110/145/110 +f 110/145/110 142/178/142 143/179/143 +f 110/145/110 143/179/143 111/146/111 +f 111/146/111 143/179/143 144/180/144 +f 111/146/111 144/180/144 112/147/112 +f 112/147/112 144/180/144 145/181/145 +f 112/147/112 145/181/145 113/148/113 +f 113/148/113 145/181/145 146/182/146 +f 113/148/113 146/182/146 114/149/114 +f 114/149/114 146/182/146 147/183/147 +f 114/149/114 147/183/147 115/150/115 +f 115/150/115 147/183/147 148/184/148 +f 115/150/115 148/184/148 116/151/116 +f 116/151/116 148/184/148 149/185/149 +f 116/151/116 149/185/149 117/152/117 +f 117/152/117 149/185/149 150/186/150 +f 117/152/117 150/186/150 118/153/118 +f 118/153/118 150/186/150 151/187/151 +f 118/153/118 151/187/151 119/154/119 +f 119/154/119 151/187/151 152/188/152 +f 119/154/119 152/188/152 120/155/120 +f 120/155/120 152/188/152 153/189/153 +f 120/155/120 153/189/153 121/156/121 +f 121/156/121 153/189/153 154/190/154 +f 121/156/121 154/190/154 122/157/122 +f 122/157/122 154/190/154 155/191/155 +f 122/157/122 155/191/155 123/158/123 +f 123/158/123 155/191/155 156/192/156 +f 123/158/123 156/192/156 124/159/124 +f 124/159/124 156/192/156 157/193/157 +f 124/159/124 157/193/157 125/160/125 +f 125/160/125 157/193/157 158/194/158 +f 125/160/125 158/194/158 126/161/126 +f 126/161/126 158/194/158 159/195/159 +f 126/161/126 159/195/159 127/162/127 +f 127/162/127 159/195/159 160/196/160 +f 127/162/127 160/196/160 128/163/128 +f 128/163/128 160/196/160 161/197/161 +f 128/163/128 161/197/161 129/164/129 +f 129/164/129 161/197/161 130/198/130 +f 129/164/129 130/198/130 98/165/98 +f 130/166/130 162/199/162 163/200/163 +f 130/166/130 163/200/163 131/167/131 +f 131/167/131 163/200/163 164/201/164 +f 131/167/131 164/201/164 132/168/132 +f 132/168/132 164/201/164 165/202/165 +f 132/168/132 165/202/165 133/169/133 +f 133/169/133 165/202/165 166/203/166 +f 133/169/133 166/203/166 134/170/134 +f 134/170/134 166/203/166 167/204/167 +f 134/170/134 167/204/167 135/171/135 +f 135/171/135 167/204/167 168/205/168 +f 135/171/135 168/205/168 136/172/136 +f 136/172/136 168/205/168 169/206/169 +f 136/172/136 169/206/169 137/173/137 +f 137/173/137 169/206/169 170/207/170 +f 137/173/137 170/207/170 138/174/138 +f 138/174/138 170/207/170 171/208/171 +f 138/174/138 171/208/171 139/175/139 +f 139/175/139 171/208/171 172/209/172 +f 139/175/139 172/209/172 140/176/140 +f 140/176/140 172/209/172 173/210/173 +f 140/176/140 173/210/173 141/177/141 +f 141/177/141 173/210/173 174/211/174 +f 141/177/141 174/211/174 142/178/142 +f 142/178/142 174/211/174 175/212/175 +f 142/178/142 175/212/175 143/179/143 +f 143/179/143 175/212/175 176/213/176 +f 143/179/143 176/213/176 144/180/144 +f 144/180/144 176/213/176 177/214/177 +f 144/180/144 177/214/177 145/181/145 +f 145/181/145 177/214/177 178/215/178 +f 145/181/145 178/215/178 146/182/146 +f 146/182/146 178/215/178 179/216/179 +f 146/182/146 179/216/179 147/183/147 +f 147/183/147 179/216/179 180/217/180 +f 147/183/147 180/217/180 148/184/148 +f 148/184/148 180/217/180 181/218/181 +f 148/184/148 181/218/181 149/185/149 +f 149/185/149 181/218/181 182/219/182 +f 149/185/149 182/219/182 150/186/150 +f 150/186/150 182/219/182 183/220/183 +f 150/186/150 183/220/183 151/187/151 +f 151/187/151 183/220/183 184/221/184 +f 151/187/151 184/221/184 152/188/152 +f 152/188/152 184/221/184 185/222/185 +f 152/188/152 185/222/185 153/189/153 +f 153/189/153 185/222/185 186/223/186 +f 153/189/153 186/223/186 154/190/154 +f 154/190/154 186/223/186 187/224/187 +f 154/190/154 187/224/187 155/191/155 +f 155/191/155 187/224/187 188/225/188 +f 155/191/155 188/225/188 156/192/156 +f 156/192/156 188/225/188 189/226/189 +f 156/192/156 189/226/189 157/193/157 +f 157/193/157 189/226/189 190/227/190 +f 157/193/157 190/227/190 158/194/158 +f 158/194/158 190/227/190 191/228/191 +f 158/194/158 191/228/191 159/195/159 +f 159/195/159 191/228/191 192/229/192 +f 159/195/159 192/229/192 160/196/160 +f 160/196/160 192/229/192 193/230/193 +f 160/196/160 193/230/193 161/197/161 +f 161/197/161 193/230/193 162/231/162 +f 161/197/161 162/231/162 130/198/130 +f 162/199/162 194/232/194 195/233/195 +f 162/199/162 195/233/195 163/200/163 +f 163/200/163 195/233/195 196/234/196 +f 163/200/163 196/234/196 164/201/164 +f 164/201/164 196/234/196 197/235/197 +f 164/201/164 197/235/197 165/202/165 +f 165/202/165 197/235/197 198/236/198 +f 165/202/165 198/236/198 166/203/166 +f 166/203/166 198/236/198 199/237/199 +f 166/203/166 199/237/199 167/204/167 +f 167/204/167 199/237/199 200/238/200 +f 167/204/167 200/238/200 168/205/168 +f 168/205/168 200/238/200 201/239/201 +f 168/205/168 201/239/201 169/206/169 +f 169/206/169 201/239/201 202/240/202 +f 169/206/169 202/240/202 170/207/170 +f 170/207/170 202/240/202 203/241/203 +f 170/207/170 203/241/203 171/208/171 +f 171/208/171 203/241/203 204/242/204 +f 171/208/171 204/242/204 172/209/172 +f 172/209/172 204/242/204 205/243/205 +f 172/209/172 205/243/205 173/210/173 +f 173/210/173 205/243/205 206/244/206 +f 173/210/173 206/244/206 174/211/174 +f 174/211/174 206/244/206 207/245/207 +f 174/211/174 207/245/207 175/212/175 +f 175/212/175 207/245/207 208/246/208 +f 175/212/175 208/246/208 176/213/176 +f 176/213/176 208/246/208 209/247/209 +f 176/213/176 209/247/209 177/214/177 +f 177/214/177 209/247/209 210/248/210 +f 177/214/177 210/248/210 178/215/178 +f 178/215/178 210/248/210 211/249/211 +f 178/215/178 211/249/211 179/216/179 +f 179/216/179 211/249/211 212/250/212 +f 179/216/179 212/250/212 180/217/180 +f 180/217/180 212/250/212 213/251/213 +f 180/217/180 213/251/213 181/218/181 +f 181/218/181 213/251/213 214/252/214 +f 181/218/181 214/252/214 182/219/182 +f 182/219/182 214/252/214 215/253/215 +f 182/219/182 215/253/215 183/220/183 +f 183/220/183 215/253/215 216/254/216 +f 183/220/183 216/254/216 184/221/184 +f 184/221/184 216/254/216 217/255/217 +f 184/221/184 217/255/217 185/222/185 +f 185/222/185 217/255/217 218/256/218 +f 185/222/185 218/256/218 186/223/186 +f 186/223/186 218/256/218 219/257/219 +f 186/223/186 219/257/219 187/224/187 +f 187/224/187 219/257/219 220/258/220 +f 187/224/187 220/258/220 188/225/188 +f 188/225/188 220/258/220 221/259/221 +f 188/225/188 221/259/221 189/226/189 +f 189/226/189 221/259/221 222/260/222 +f 189/226/189 222/260/222 190/227/190 +f 190/227/190 222/260/222 223/261/223 +f 190/227/190 223/261/223 191/228/191 +f 191/228/191 223/261/223 224/262/224 +f 191/228/191 224/262/224 192/229/192 +f 192/229/192 224/262/224 225/263/225 +f 192/229/192 225/263/225 193/230/193 +f 193/230/193 225/263/225 194/264/194 +f 193/230/193 194/264/194 162/231/162 +f 194/232/194 226/265/226 227/266/227 +f 194/232/194 227/266/227 195/233/195 +f 195/233/195 227/266/227 228/267/228 +f 195/233/195 228/267/228 196/234/196 +f 196/234/196 228/267/228 229/268/229 +f 196/234/196 229/268/229 197/235/197 +f 197/235/197 229/268/229 230/269/230 +f 197/235/197 230/269/230 198/236/198 +f 198/236/198 230/269/230 231/270/231 +f 198/236/198 231/270/231 199/237/199 +f 199/237/199 231/270/231 232/271/232 +f 199/237/199 232/271/232 200/238/200 +f 200/238/200 232/271/232 233/272/233 +f 200/238/200 233/272/233 201/239/201 +f 201/239/201 233/272/233 234/273/234 +f 201/239/201 234/273/234 202/240/202 +f 202/240/202 234/273/234 235/274/235 +f 202/240/202 235/274/235 203/241/203 +f 203/241/203 235/274/235 236/275/236 +f 203/241/203 236/275/236 204/242/204 +f 204/242/204 236/275/236 237/276/237 +f 204/242/204 237/276/237 205/243/205 +f 205/243/205 237/276/237 238/277/238 +f 205/243/205 238/277/238 206/244/206 +f 206/244/206 238/277/238 239/278/239 +f 206/244/206 239/278/239 207/245/207 +f 207/245/207 239/278/239 240/279/240 +f 207/245/207 240/279/240 208/246/208 +f 208/246/208 240/279/240 241/280/241 +f 208/246/208 241/280/241 209/247/209 +f 209/247/209 241/280/241 242/281/242 +f 209/247/209 242/281/242 210/248/210 +f 210/248/210 242/281/242 243/282/243 +f 210/248/210 243/282/243 211/249/211 +f 211/249/211 243/282/243 244/283/244 +f 211/249/211 244/283/244 212/250/212 +f 212/250/212 244/283/244 245/284/245 +f 212/250/212 245/284/245 213/251/213 +f 213/251/213 245/284/245 246/285/246 +f 213/251/213 246/285/246 214/252/214 +f 214/252/214 246/285/246 247/286/247 +f 214/252/214 247/286/247 215/253/215 +f 215/253/215 247/286/247 248/287/248 +f 215/253/215 248/287/248 216/254/216 +f 216/254/216 248/287/248 249/288/249 +f 216/254/216 249/288/249 217/255/217 +f 217/255/217 249/288/249 250/289/250 +f 217/255/217 250/289/250 218/256/218 +f 218/256/218 250/289/250 251/290/251 +f 218/256/218 251/290/251 219/257/219 +f 219/257/219 251/290/251 252/291/252 +f 219/257/219 252/291/252 220/258/220 +f 220/258/220 252/291/252 253/292/253 +f 220/258/220 253/292/253 221/259/221 +f 221/259/221 253/292/253 254/293/254 +f 221/259/221 254/293/254 222/260/222 +f 222/260/222 254/293/254 255/294/255 +f 222/260/222 255/294/255 223/261/223 +f 223/261/223 255/294/255 256/295/256 +f 223/261/223 256/295/256 224/262/224 +f 224/262/224 256/295/256 257/296/257 +f 224/262/224 257/296/257 225/263/225 +f 225/263/225 257/296/257 226/297/226 +f 225/263/225 226/297/226 194/264/194 +f 226/265/226 258/298/258 259/299/259 +f 226/265/226 259/299/259 227/266/227 +f 227/266/227 259/299/259 260/300/260 +f 227/266/227 260/300/260 228/267/228 +f 228/267/228 260/300/260 261/301/261 +f 228/267/228 261/301/261 229/268/229 +f 229/268/229 261/301/261 262/302/262 +f 229/268/229 262/302/262 230/269/230 +f 230/269/230 262/302/262 263/303/263 +f 230/269/230 263/303/263 231/270/231 +f 231/270/231 263/303/263 264/304/264 +f 231/270/231 264/304/264 232/271/232 +f 232/271/232 264/304/264 265/305/265 +f 232/271/232 265/305/265 233/272/233 +f 233/272/233 265/305/265 266/306/266 +f 233/272/233 266/306/266 234/273/234 +f 234/273/234 266/306/266 267/307/267 +f 234/273/234 267/307/267 235/274/235 +f 235/274/235 267/307/267 268/308/268 +f 235/274/235 268/308/268 236/275/236 +f 236/275/236 268/308/268 269/309/269 +f 236/275/236 269/309/269 237/276/237 +f 237/276/237 269/309/269 270/310/270 +f 237/276/237 270/310/270 238/277/238 +f 238/277/238 270/310/270 271/311/271 +f 238/277/238 271/311/271 239/278/239 +f 239/278/239 271/311/271 272/312/272 +f 239/278/239 272/312/272 240/279/240 +f 240/279/240 272/312/272 273/313/273 +f 240/279/240 273/313/273 241/280/241 +f 241/280/241 273/313/273 274/314/274 +f 241/280/241 274/314/274 242/281/242 +f 242/281/242 274/314/274 275/315/275 +f 242/281/242 275/315/275 243/282/243 +f 243/282/243 275/315/275 276/316/276 +f 243/282/243 276/316/276 244/283/244 +f 244/283/244 276/316/276 277/317/277 +f 244/283/244 277/317/277 245/284/245 +f 245/284/245 277/317/277 278/318/278 +f 245/284/245 278/318/278 246/285/246 +f 246/285/246 278/318/278 279/319/279 +f 246/285/246 279/319/279 247/286/247 +f 247/286/247 279/319/279 280/320/280 +f 247/286/247 280/320/280 248/287/248 +f 248/287/248 280/320/280 281/321/281 +f 248/287/248 281/321/281 249/288/249 +f 249/288/249 281/321/281 282/322/282 +f 249/288/249 282/322/282 250/289/250 +f 250/289/250 282/322/282 283/323/283 +f 250/289/250 283/323/283 251/290/251 +f 251/290/251 283/323/283 284/324/284 +f 251/290/251 284/324/284 252/291/252 +f 252/291/252 284/324/284 285/325/285 +f 252/291/252 285/325/285 253/292/253 +f 253/292/253 285/325/285 286/326/286 +f 253/292/253 286/326/286 254/293/254 +f 254/293/254 286/326/286 287/327/287 +f 254/293/254 287/327/287 255/294/255 +f 255/294/255 287/327/287 288/328/288 +f 255/294/255 288/328/288 256/295/256 +f 256/295/256 288/328/288 289/329/289 +f 256/295/256 289/329/289 257/296/257 +f 257/296/257 289/329/289 258/330/258 +f 257/296/257 258/330/258 226/297/226 +f 258/298/258 290/331/290 291/332/291 +f 258/298/258 291/332/291 259/299/259 +f 259/299/259 291/332/291 292/333/292 +f 259/299/259 292/333/292 260/300/260 +f 260/300/260 292/333/292 293/334/293 +f 260/300/260 293/334/293 261/301/261 +f 261/301/261 293/334/293 294/335/294 +f 261/301/261 294/335/294 262/302/262 +f 262/302/262 294/335/294 295/336/295 +f 262/302/262 295/336/295 263/303/263 +f 263/303/263 295/336/295 296/337/296 +f 263/303/263 296/337/296 264/304/264 +f 264/304/264 296/337/296 297/338/297 +f 264/304/264 297/338/297 265/305/265 +f 265/305/265 297/338/297 298/339/298 +f 265/305/265 298/339/298 266/306/266 +f 266/306/266 298/339/298 299/340/299 +f 266/306/266 299/340/299 267/307/267 +f 267/307/267 299/340/299 300/341/300 +f 267/307/267 300/341/300 268/308/268 +f 268/308/268 300/341/300 301/342/301 +f 268/308/268 301/342/301 269/309/269 +f 269/309/269 301/342/301 302/343/302 +f 269/309/269 302/343/302 270/310/270 +f 270/310/270 302/343/302 303/344/303 +f 270/310/270 303/344/303 271/311/271 +f 271/311/271 303/344/303 304/345/304 +f 271/311/271 304/345/304 272/312/272 +f 272/312/272 304/345/304 305/346/305 +f 272/312/272 305/346/305 273/313/273 +f 273/313/273 305/346/305 306/347/306 +f 273/313/273 306/347/306 274/314/274 +f 274/314/274 306/347/306 307/348/307 +f 274/314/274 307/348/307 275/315/275 +f 275/315/275 307/348/307 308/349/308 +f 275/315/275 308/349/308 276/316/276 +f 276/316/276 308/349/308 309/350/309 +f 276/316/276 309/350/309 277/317/277 +f 277/317/277 309/350/309 310/351/310 +f 277/317/277 310/351/310 278/318/278 +f 278/318/278 310/351/310 311/352/311 +f 278/318/278 311/352/311 279/319/279 +f 279/319/279 311/352/311 312/353/312 +f 279/319/279 312/353/312 280/320/280 +f 280/320/280 312/353/312 313/354/313 +f 280/320/280 313/354/313 281/321/281 +f 281/321/281 313/354/313 314/355/314 +f 281/321/281 314/355/314 282/322/282 +f 282/322/282 314/355/314 315/356/315 +f 282/322/282 315/356/315 283/323/283 +f 283/323/283 315/356/315 316/357/316 +f 283/323/283 316/357/316 284/324/284 +f 284/324/284 316/357/316 317/358/317 +f 284/324/284 317/358/317 285/325/285 +f 285/325/285 317/358/317 318/359/318 +f 285/325/285 318/359/318 286/326/286 +f 286/326/286 318/359/318 319/360/319 +f 286/326/286 319/360/319 287/327/287 +f 287/327/287 319/360/319 320/361/320 +f 287/327/287 320/361/320 288/328/288 +f 288/328/288 320/361/320 321/362/321 +f 288/328/288 321/362/321 289/329/289 +f 289/329/289 321/362/321 290/363/290 +f 289/329/289 290/363/290 258/330/258 +f 290/331/290 322/364/322 323/365/323 +f 290/331/290 323/365/323 291/332/291 +f 291/332/291 323/365/323 324/366/324 +f 291/332/291 324/366/324 292/333/292 +f 292/333/292 324/366/324 325/367/325 +f 292/333/292 325/367/325 293/334/293 +f 293/334/293 325/367/325 326/368/326 +f 293/334/293 326/368/326 294/335/294 +f 294/335/294 326/368/326 327/369/327 +f 294/335/294 327/369/327 295/336/295 +f 295/336/295 327/369/327 328/370/328 +f 295/336/295 328/370/328 296/337/296 +f 296/337/296 328/370/328 329/371/329 +f 296/337/296 329/371/329 297/338/297 +f 297/338/297 329/371/329 330/372/330 +f 297/338/297 330/372/330 298/339/298 +f 298/339/298 330/372/330 331/373/331 +f 298/339/298 331/373/331 299/340/299 +f 299/340/299 331/373/331 332/374/332 +f 299/340/299 332/374/332 300/341/300 +f 300/341/300 332/374/332 333/375/333 +f 300/341/300 333/375/333 301/342/301 +f 301/342/301 333/375/333 334/376/334 +f 301/342/301 334/376/334 302/343/302 +f 302/343/302 334/376/334 335/377/335 +f 302/343/302 335/377/335 303/344/303 +f 303/344/303 335/377/335 336/378/336 +f 303/344/303 336/378/336 304/345/304 +f 304/345/304 336/378/336 337/379/337 +f 304/345/304 337/379/337 305/346/305 +f 305/346/305 337/379/337 338/380/338 +f 305/346/305 338/380/338 306/347/306 +f 306/347/306 338/380/338 339/381/339 +f 306/347/306 339/381/339 307/348/307 +f 307/348/307 339/381/339 340/382/340 +f 307/348/307 340/382/340 308/349/308 +f 308/349/308 340/382/340 341/383/341 +f 308/349/308 341/383/341 309/350/309 +f 309/350/309 341/383/341 342/384/342 +f 309/350/309 342/384/342 310/351/310 +f 310/351/310 342/384/342 343/385/343 +f 310/351/310 343/385/343 311/352/311 +f 311/352/311 343/385/343 344/386/344 +f 311/352/311 344/386/344 312/353/312 +f 312/353/312 344/386/344 345/387/345 +f 312/353/312 345/387/345 313/354/313 +f 313/354/313 345/387/345 346/388/346 +f 313/354/313 346/388/346 314/355/314 +f 314/355/314 346/388/346 347/389/347 +f 314/355/314 347/389/347 315/356/315 +f 315/356/315 347/389/347 348/390/348 +f 315/356/315 348/390/348 316/357/316 +f 316/357/316 348/390/348 349/391/349 +f 316/357/316 349/391/349 317/358/317 +f 317/358/317 349/391/349 350/392/350 +f 317/358/317 350/392/350 318/359/318 +f 318/359/318 350/392/350 351/393/351 +f 318/359/318 351/393/351 319/360/319 +f 319/360/319 351/393/351 352/394/352 +f 319/360/319 352/394/352 320/361/320 +f 320/361/320 352/394/352 353/395/353 +f 320/361/320 353/395/353 321/362/321 +f 321/362/321 353/395/353 322/396/322 +f 321/362/321 322/396/322 290/363/290 +f 322/364/322 354/397/354 355/398/355 +f 322/364/322 355/398/355 323/365/323 +f 323/365/323 355/398/355 356/399/356 +f 323/365/323 356/399/356 324/366/324 +f 324/366/324 356/399/356 357/400/357 +f 324/366/324 357/400/357 325/367/325 +f 325/367/325 357/400/357 358/401/358 +f 325/367/325 358/401/358 326/368/326 +f 326/368/326 358/401/358 359/402/359 +f 326/368/326 359/402/359 327/369/327 +f 327/369/327 359/402/359 360/403/360 +f 327/369/327 360/403/360 328/370/328 +f 328/370/328 360/403/360 361/404/361 +f 328/370/328 361/404/361 329/371/329 +f 329/371/329 361/404/361 362/405/362 +f 329/371/329 362/405/362 330/372/330 +f 330/372/330 362/405/362 363/406/363 +f 330/372/330 363/406/363 331/373/331 +f 331/373/331 363/406/363 364/407/364 +f 331/373/331 364/407/364 332/374/332 +f 332/374/332 364/407/364 365/408/365 +f 332/374/332 365/408/365 333/375/333 +f 333/375/333 365/408/365 366/409/366 +f 333/375/333 366/409/366 334/376/334 +f 334/376/334 366/409/366 367/410/367 +f 334/376/334 367/410/367 335/377/335 +f 335/377/335 367/410/367 368/411/368 +f 335/377/335 368/411/368 336/378/336 +f 336/378/336 368/411/368 369/412/369 +f 336/378/336 369/412/369 337/379/337 +f 337/379/337 369/412/369 370/413/370 +f 337/379/337 370/413/370 338/380/338 +f 338/380/338 370/413/370 371/414/371 +f 338/380/338 371/414/371 339/381/339 +f 339/381/339 371/414/371 372/415/372 +f 339/381/339 372/415/372 340/382/340 +f 340/382/340 372/415/372 373/416/373 +f 340/382/340 373/416/373 341/383/341 +f 341/383/341 373/416/373 374/417/374 +f 341/383/341 374/417/374 342/384/342 +f 342/384/342 374/417/374 375/418/375 +f 342/384/342 375/418/375 343/385/343 +f 343/385/343 375/418/375 376/419/376 +f 343/385/343 376/419/376 344/386/344 +f 344/386/344 376/419/376 377/420/377 +f 344/386/344 377/420/377 345/387/345 +f 345/387/345 377/420/377 378/421/378 +f 345/387/345 378/421/378 346/388/346 +f 346/388/346 378/421/378 379/422/379 +f 346/388/346 379/422/379 347/389/347 +f 347/389/347 379/422/379 380/423/380 +f 347/389/347 380/423/380 348/390/348 +f 348/390/348 380/423/380 381/424/381 +f 348/390/348 381/424/381 349/391/349 +f 349/391/349 381/424/381 382/425/382 +f 349/391/349 382/425/382 350/392/350 +f 350/392/350 382/425/382 383/426/383 +f 350/392/350 383/426/383 351/393/351 +f 351/393/351 383/426/383 384/427/384 +f 351/393/351 384/427/384 352/394/352 +f 352/394/352 384/427/384 385/428/385 +f 352/394/352 385/428/385 353/395/353 +f 353/395/353 385/428/385 354/429/354 +f 353/395/353 354/429/354 322/396/322 +f 354/397/354 386/430/386 387/431/387 +f 354/397/354 387/431/387 355/398/355 +f 355/398/355 387/431/387 388/432/388 +f 355/398/355 388/432/388 356/399/356 +f 356/399/356 388/432/388 389/433/389 +f 356/399/356 389/433/389 357/400/357 +f 357/400/357 389/433/389 390/434/390 +f 357/400/357 390/434/390 358/401/358 +f 358/401/358 390/434/390 391/435/391 +f 358/401/358 391/435/391 359/402/359 +f 359/402/359 391/435/391 392/436/392 +f 359/402/359 392/436/392 360/403/360 +f 360/403/360 392/436/392 393/437/393 +f 360/403/360 393/437/393 361/404/361 +f 361/404/361 393/437/393 394/438/394 +f 361/404/361 394/438/394 362/405/362 +f 362/405/362 394/438/394 395/439/395 +f 362/405/362 395/439/395 363/406/363 +f 363/406/363 395/439/395 396/440/396 +f 363/406/363 396/440/396 364/407/364 +f 364/407/364 396/440/396 397/441/397 +f 364/407/364 397/441/397 365/408/365 +f 365/408/365 397/441/397 398/442/398 +f 365/408/365 398/442/398 366/409/366 +f 366/409/366 398/442/398 399/443/399 +f 366/409/366 399/443/399 367/410/367 +f 367/410/367 399/443/399 400/444/400 +f 367/410/367 400/444/400 368/411/368 +f 368/411/368 400/444/400 401/445/401 +f 368/411/368 401/445/401 369/412/369 +f 369/412/369 401/445/401 402/446/402 +f 369/412/369 402/446/402 370/413/370 +f 370/413/370 402/446/402 403/447/403 +f 370/413/370 403/447/403 371/414/371 +f 371/414/371 403/447/403 404/448/404 +f 371/414/371 404/448/404 372/415/372 +f 372/415/372 404/448/404 405/449/405 +f 372/415/372 405/449/405 373/416/373 +f 373/416/373 405/449/405 406/450/406 +f 373/416/373 406/450/406 374/417/374 +f 374/417/374 406/450/406 407/451/407 +f 374/417/374 407/451/407 375/418/375 +f 375/418/375 407/451/407 408/452/408 +f 375/418/375 408/452/408 376/419/376 +f 376/419/376 408/452/408 409/453/409 +f 376/419/376 409/453/409 377/420/377 +f 377/420/377 409/453/409 410/454/410 +f 377/420/377 410/454/410 378/421/378 +f 378/421/378 410/454/410 411/455/411 +f 378/421/378 411/455/411 379/422/379 +f 379/422/379 411/455/411 412/456/412 +f 379/422/379 412/456/412 380/423/380 +f 380/423/380 412/456/412 413/457/413 +f 380/423/380 413/457/413 381/424/381 +f 381/424/381 413/457/413 414/458/414 +f 381/424/381 414/458/414 382/425/382 +f 382/425/382 414/458/414 415/459/415 +f 382/425/382 415/459/415 383/426/383 +f 383/426/383 415/459/415 416/460/416 +f 383/426/383 416/460/416 384/427/384 +f 384/427/384 416/460/416 417/461/417 +f 384/427/384 417/461/417 385/428/385 +f 385/428/385 417/461/417 386/462/386 +f 385/428/385 386/462/386 354/429/354 +f 386/430/386 418/463/418 419/464/419 +f 386/430/386 419/464/419 387/431/387 +f 387/431/387 419/464/419 420/465/420 +f 387/431/387 420/465/420 388/432/388 +f 388/432/388 420/465/420 421/466/421 +f 388/432/388 421/466/421 389/433/389 +f 389/433/389 421/466/421 422/467/422 +f 389/433/389 422/467/422 390/434/390 +f 390/434/390 422/467/422 423/468/423 +f 390/434/390 423/468/423 391/435/391 +f 391/435/391 423/468/423 424/469/424 +f 391/435/391 424/469/424 392/436/392 +f 392/436/392 424/469/424 425/470/425 +f 392/436/392 425/470/425 393/437/393 +f 393/437/393 425/470/425 426/471/426 +f 393/437/393 426/471/426 394/438/394 +f 394/438/394 426/471/426 427/472/427 +f 394/438/394 427/472/427 395/439/395 +f 395/439/395 427/472/427 428/473/428 +f 395/439/395 428/473/428 396/440/396 +f 396/440/396 428/473/428 429/474/429 +f 396/440/396 429/474/429 397/441/397 +f 397/441/397 429/474/429 430/475/430 +f 397/441/397 430/475/430 398/442/398 +f 398/442/398 430/475/430 431/476/431 +f 398/442/398 431/476/431 399/443/399 +f 399/443/399 431/476/431 432/477/432 +f 399/443/399 432/477/432 400/444/400 +f 400/444/400 432/477/432 433/478/433 +f 400/444/400 433/478/433 401/445/401 +f 401/445/401 433/478/433 434/479/434 +f 401/445/401 434/479/434 402/446/402 +f 402/446/402 434/479/434 435/480/435 +f 402/446/402 435/480/435 403/447/403 +f 403/447/403 435/480/435 436/481/436 +f 403/447/403 436/481/436 404/448/404 +f 404/448/404 436/481/436 437/482/437 +f 404/448/404 437/482/437 405/449/405 +f 405/449/405 437/482/437 438/483/438 +f 405/449/405 438/483/438 406/450/406 +f 406/450/406 438/483/438 439/484/439 +f 406/450/406 439/484/439 407/451/407 +f 407/451/407 439/484/439 440/485/440 +f 407/451/407 440/485/440 408/452/408 +f 408/452/408 440/485/440 441/486/441 +f 408/452/408 441/486/441 409/453/409 +f 409/453/409 441/486/441 442/487/442 +f 409/453/409 442/487/442 410/454/410 +f 410/454/410 442/487/442 443/488/443 +f 410/454/410 443/488/443 411/455/411 +f 411/455/411 443/488/443 444/489/444 +f 411/455/411 444/489/444 412/456/412 +f 412/456/412 444/489/444 445/490/445 +f 412/456/412 445/490/445 413/457/413 +f 413/457/413 445/490/445 446/491/446 +f 413/457/413 446/491/446 414/458/414 +f 414/458/414 446/491/446 447/492/447 +f 414/458/414 447/492/447 415/459/415 +f 415/459/415 447/492/447 448/493/448 +f 415/459/415 448/493/448 416/460/416 +f 416/460/416 448/493/448 449/494/449 +f 416/460/416 449/494/449 417/461/417 +f 417/461/417 449/494/449 418/495/418 +f 417/461/417 418/495/418 386/462/386 +f 418/463/418 450/496/450 451/497/451 +f 418/463/418 451/497/451 419/464/419 +f 419/464/419 451/497/451 452/498/452 +f 419/464/419 452/498/452 420/465/420 +f 420/465/420 452/498/452 453/499/453 +f 420/465/420 453/499/453 421/466/421 +f 421/466/421 453/499/453 454/500/454 +f 421/466/421 454/500/454 422/467/422 +f 422/467/422 454/500/454 455/501/455 +f 422/467/422 455/501/455 423/468/423 +f 423/468/423 455/501/455 456/502/456 +f 423/468/423 456/502/456 424/469/424 +f 424/469/424 456/502/456 457/503/457 +f 424/469/424 457/503/457 425/470/425 +f 425/470/425 457/503/457 458/504/458 +f 425/470/425 458/504/458 426/471/426 +f 426/471/426 458/504/458 459/505/459 +f 426/471/426 459/505/459 427/472/427 +f 427/472/427 459/505/459 460/506/460 +f 427/472/427 460/506/460 428/473/428 +f 428/473/428 460/506/460 461/507/461 +f 428/473/428 461/507/461 429/474/429 +f 429/474/429 461/507/461 462/508/462 +f 429/474/429 462/508/462 430/475/430 +f 430/475/430 462/508/462 463/509/463 +f 430/475/430 463/509/463 431/476/431 +f 431/476/431 463/509/463 464/510/464 +f 431/476/431 464/510/464 432/477/432 +f 432/477/432 464/510/464 465/511/465 +f 432/477/432 465/511/465 433/478/433 +f 433/478/433 465/511/465 466/512/466 +f 433/478/433 466/512/466 434/479/434 +f 434/479/434 466/512/466 467/513/467 +f 434/479/434 467/513/467 435/480/435 +f 435/480/435 467/513/467 468/514/468 +f 435/480/435 468/514/468 436/481/436 +f 436/481/436 468/514/468 469/515/469 +f 436/481/436 469/515/469 437/482/437 +f 437/482/437 469/515/469 470/516/470 +f 437/482/437 470/516/470 438/483/438 +f 438/483/438 470/516/470 471/517/471 +f 438/483/438 471/517/471 439/484/439 +f 439/484/439 471/517/471 472/518/472 +f 439/484/439 472/518/472 440/485/440 +f 440/485/440 472/518/472 473/519/473 +f 440/485/440 473/519/473 441/486/441 +f 441/486/441 473/519/473 474/520/474 +f 441/486/441 474/520/474 442/487/442 +f 442/487/442 474/520/474 475/521/475 +f 442/487/442 475/521/475 443/488/443 +f 443/488/443 475/521/475 476/522/476 +f 443/488/443 476/522/476 444/489/444 +f 444/489/444 476/522/476 477/523/477 +f 444/489/444 477/523/477 445/490/445 +f 445/490/445 477/523/477 478/524/478 +f 445/490/445 478/524/478 446/491/446 +f 446/491/446 478/524/478 479/525/479 +f 446/491/446 479/525/479 447/492/447 +f 447/492/447 479/525/479 480/526/480 +f 447/492/447 480/526/480 448/493/448 +f 448/493/448 480/526/480 481/527/481 +f 448/493/448 481/527/481 449/494/449 +f 449/494/449 481/527/481 450/528/450 +f 449/494/449 450/528/450 418/495/418 +f 482/529/482 451/497/451 450/496/450 +f 482/530/482 452/498/452 451/497/451 +f 482/531/482 453/499/453 452/498/452 +f 482/532/482 454/500/454 453/499/453 +f 482/533/482 455/501/455 454/500/454 +f 482/534/482 456/502/456 455/501/455 +f 482/535/482 457/503/457 456/502/456 +f 482/536/482 458/504/458 457/503/457 +f 482/537/482 459/505/459 458/504/458 +f 482/538/482 460/506/460 459/505/459 +f 482/539/482 461/507/461 460/506/460 +f 482/540/482 462/508/462 461/507/461 +f 482/541/482 463/509/463 462/508/462 +f 482/542/482 464/510/464 463/509/463 +f 482/543/482 465/511/465 464/510/464 +f 482/544/482 466/512/466 465/511/465 +f 482/545/482 467/513/467 466/512/466 +f 482/546/482 468/514/468 467/513/467 +f 482/547/482 469/515/469 468/514/468 +f 482/548/482 470/516/470 469/515/469 +f 482/549/482 471/517/471 470/516/470 +f 482/550/482 472/518/472 471/517/471 +f 482/551/482 473/519/473 472/518/472 +f 482/552/482 474/520/474 473/519/473 +f 482/553/482 475/521/475 474/520/474 +f 482/554/482 476/522/476 475/521/475 +f 482/555/482 477/523/477 476/522/476 +f 482/556/482 478/524/478 477/523/477 +f 482/557/482 479/525/479 478/524/478 +f 482/558/482 480/526/480 479/525/479 +f 482/559/482 481/527/481 480/526/480 +f 482/560/482 450/528/450 481/527/481 +# 960 faces + +g diff --git a/cw 9/shaders/shader_9_1.frag b/cw 9/shaders/shader_9_1.frag index 295bef9..01b1267 100644 --- a/cw 9/shaders/shader_9_1.frag +++ b/cw 9/shaders/shader_9_1.frag @@ -1,9 +1,10 @@ -#version 430 core +#version 430 core float AMBIENT = 0.03; float PI = 3.14; uniform sampler2D depthMap; +uniform sampler2D colorTexture; uniform vec3 cameraPos; @@ -23,10 +24,9 @@ uniform vec3 spotlightPhi; uniform float metallic; uniform float roughness; -uniform float exposition; - in vec3 vecNormal; in vec3 worldPos; +in vec2 vecTex; out vec4 outColor; @@ -38,25 +38,6 @@ in vec3 sunDirTS; in vec3 test; -// wektor przechowujący punkt widzenia światła -in vec4 sunSpacePos; - -// mapa przechowująca wartość cieni -uniform sampler2D shadowMap; - -// zmienne przechowujące szerokość i wysokość mapy cieni -uniform float shadowMapWidth; -uniform float shadowMapHeight; - -// zmienne do PCF - Percentage Closer Filtering - -// promień pixeli - np. 2 oznacza badanie na szerokość 5 bo 2 + 1 + 2 -const int pcfCount = 8; - -// ilość wszystkich pixeli - (2 * promień + 1) ^ 2 -const float totalTexels = (pcfCount * 2.0 + 1.0) * (pcfCount * 2.0 + 1.0); - - float DistributionGGX(vec3 normal, vec3 H, float roughness){ float a = roughness*roughness; float a2 = a*a; @@ -117,76 +98,31 @@ vec3 PBRLight(vec3 lightDir, vec3 radiance, vec3 normal, vec3 V){ return (kD * color / PI + specular) * radiance * NdotL; } -// metoda obliczająca cień za pomocą PCF - -float calculateShadow(vec4 lightPos, sampler2D Shadow_Map){ - // ujednorodnienie pozycji światła - vec3 _lightPos = lightPos.xyz/lightPos.w; - - // skalowanie z wartości (-1, 1) do wartości (0, 1) - _lightPos = _lightPos * 0.5 + 0.5; - - // ustalenie wielości texeli - double TexelWidth = 1.0/shadowMapWidth; - double TexelHeight = 1.0/shadowMapHeight; - - vec2 TexelSize = vec2(TexelWidth, TexelHeight); - - // zmienna przechowująca wartość cienia - float shadowSum = 0.0; - - // algorytm PCF - for (int y = -pcfCount ; y <= pcfCount ; y++) { - for (int x = -pcfCount ; x <= pcfCount ; x++) { - // liczymi wartości (x, y) z przesunięciem - vec2 Offset = vec2(x, y) * TexelSize; - - // sprawdzenie wartości z dpeth map oraz przypisanie odpowiedniej wartości dla shadow - float shadow = _lightPos.z > texture(Shadow_Map, _lightPos.xy + Offset).r + 0.001 ? 1.0 : 0.0; - - // dodanie wartości do shadow - shadowSum += shadow; - } - } - - // zwrócenie średniej wartości cieni z wszystkich pixeli wokół - return ((shadowSum/totalTexels)/lightPos.w); -} void main() { - //vec3 normal = vec3(0,0,1); vec3 normal = normalize(vecNormal); - //vec3 viewDir = normalize(viewDirTS); vec3 viewDir = normalize(cameraPos-worldPos); - //vec3 lightDir = normalize(lightDirTS); vec3 lightDir = normalize(lightPos-worldPos); + vec3 textureColor = texture2D(colorTexture, vecTex).xyz; + vec3 ambient = AMBIENT*color; vec3 attenuatedlightColor = lightColor/pow(length(lightPos-worldPos),2); vec3 ilumination; ilumination = ambient+PBRLight(lightDir,attenuatedlightColor,normal,viewDir); - //flashlight - //vec3 spotlightDir= normalize(spotlightDirTS); - vec3 spotlightDir= normalize(spotlightPos-worldPos); - float angle_atenuation = clamp((dot(-normalize(spotlightPos-worldPos),spotlightConeDir)-0.5)*3,0,1); attenuatedlightColor = angle_atenuation*spotlightColor/pow(length(spotlightPos-worldPos),2); - ilumination=ilumination+PBRLight(spotlightDir,attenuatedlightColor,normal,viewDir); - - // obliczanie cienia - float shadow = calculateShadow(sunSpacePos, shadowMap); //sun - // zaaplikowanie cienia do koloru światła. - ilumination = ilumination + PBRLight(sunDir,sunColor * (1.0 - shadow), normal, viewDir); + ilumination=ilumination+PBRLight(sunDir,sunColor,normal,viewDir); + + float diffuse=max(0,dot(normal,lightDir)); + outColor = vec4(textureColor*min(1,AMBIENT+diffuse), 1.0); - outColor = vec4(vec3(1.0) - exp(-ilumination*exposition),1); - //outColor = vec4(roughness,metallic,0,1); - //outColor = vec4(test; } diff --git a/cw 9/shaders/shader_9_1.vert b/cw 9/shaders/shader_9_1.vert index b730af8..e08a2ea 100644 --- a/cw 9/shaders/shader_9_1.vert +++ b/cw 9/shaders/shader_9_1.vert @@ -1,4 +1,4 @@ -#version 430 core +#version 430 core layout(location = 0) in vec3 vertexPosition; layout(location = 1) in vec3 vertexNormal; @@ -8,10 +8,10 @@ layout(location = 4) in vec3 vertexBitangent; uniform mat4 transformation; uniform mat4 modelMatrix; -uniform mat4 lightVP; out vec3 vecNormal; out vec3 worldPos; +out vec2 vecTex; uniform vec3 lightPos; uniform vec3 spotlightPos; @@ -23,13 +23,12 @@ out vec3 lightDirTS; out vec3 spotlightDirTS; out vec3 sunDirTS; -out vec4 sunSpacePos; - - void main() { worldPos = (modelMatrix* vec4(vertexPosition,1)).xyz; vecNormal = (modelMatrix* vec4(vertexNormal,0)).xyz; + vecTex = vertexTexCoord; + vecTex.y = 1.0 - vecTex.y; gl_Position = transformation * vec4(vertexPosition, 1.0); vec3 w_tangent = normalize(mat3(modelMatrix)*vertexTangent); @@ -44,7 +43,4 @@ void main() spotlightDirTS = TBN*SL; sunDirTS = TBN*sunDir; - // przeliczanie pozycji światła - sunSpacePos = lightVP * modelMatrix * vec4(vertexPosition, 1); - } diff --git a/cw 9/src/ex_9_1.hpp b/cw 9/src/ex_9_1.hpp index bdd1111..d078588 100644 --- a/cw 9/src/ex_9_1.hpp +++ b/cw 9/src/ex_9_1.hpp @@ -19,28 +19,9 @@ const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024; int WIDTH = 500, HEIGHT = 500; -namespace models { - Core::RenderContext roomContext; - Core::RenderContext mattressContext; - Core::RenderContext bedContext; - Core::RenderContext wardrobeContext; - Core::RenderContext wardrobeDoorLeftContext; - Core::RenderContext wardrobeDoorRightContext; - Core::RenderContext deskContext; - Core::RenderContext chairContext; - Core::RenderContext windowContext; - Core::RenderContext shelfContext; - Core::RenderContext lampContext; - Core::RenderContext windowsillContext; - Core::RenderContext paintingContext; - Core::RenderContext doorContext; - Core::RenderContext doorframeContext; - Core::RenderContext floorthingContext; - Core::RenderContext booksContext; - Core::RenderContext laptopContext; - Core::RenderContext pstryczekContext; - Core::RenderContext cactusContext; -} +float r; +float r1; +float r2; namespace texture { GLuint room; @@ -66,6 +47,29 @@ namespace texture { GLuint laptop; } +namespace models { + Core::RenderContext roomContext; + Core::RenderContext mattressContext; + Core::RenderContext bedContext; + Core::RenderContext wardrobeContext; + Core::RenderContext wardrobeDoorLeftContext; + Core::RenderContext wardrobeDoorRightContext; + Core::RenderContext deskContext; + Core::RenderContext chairContext; + Core::RenderContext windowContext; + Core::RenderContext shelfContext; + Core::RenderContext lampContext; + Core::RenderContext windowsillContext; + Core::RenderContext paintingContext; + Core::RenderContext doorContext; + Core::RenderContext doorframeContext; + Core::RenderContext floorthingContext; + Core::RenderContext booksContext; + Core::RenderContext laptopContext; + Core::RenderContext pstryczekContext; + Core::RenderContext cactusContext; + Core::RenderContext sphereContext; +} GLuint depthMapFBO; GLuint depthMap; @@ -73,53 +77,30 @@ GLuint depthMap; GLuint program; GLuint programSun; GLuint programTex; -GLuint programDepth; Core::Shader_Loader shaderLoader; -Core::RenderContext shipContext; Core::RenderContext sphereContext; glm::vec3 sunPos = glm::vec3(-4.740971f, 2.149999f, 0.369280f); glm::vec3 sunDir = glm::vec3(-0.93633f, 0.351106, 0.003226f); +glm::vec3 sunColor = glm::vec3(0.9f, 0.9f, 0.7f) * 5; -//glm::vec3 sunPos = glm::vec3(-3.631, 9.78959, 5.59173); -//glm::vec3 sunDir = glm::vec3(-65.985, 7.96228, 33.1559); - -glm::vec3 sunColor = glm::vec3(0.9f, 0.9f, 0.7f)*5; - -// macierz light view point - punkt widzenia światła -glm::mat4 lightVP = glm::ortho(-4.f, 2.5f, -2.f, 5.f, 1.0f, 30.0f) * glm::lookAt(sunPos, sunPos - sunDir, glm::vec3(0, 1, 0)); - -glm::vec3 cameraPos = glm::vec3(0.479490f, 1.250000f, -2.124680f); +glm::vec3 cameraPos = glm::vec3(0.f, 5.f, 0.f); glm::vec3 cameraDir = glm::vec3(-0.354510f, 0.000000f, 0.935054f); -glm::vec3 spaceshipPos = glm::vec3(0.065808f, 1.250000f, -2.189549f); -glm::vec3 spaceshipDir = glm::vec3(-0.490263f, 0.000000f, 0.871578f); -GLuint VAO,VBO; - float aspectRatio = 1.f; -float exposition = 1.f; - -float r; -float r1; -float r2; - -std::vector quadsPositions; - glm::vec3 pointlightPos = glm::vec3(0, 2, 0); glm::vec3 pointlightColor = glm::vec3(0.9, 0.6, 0.6); glm::vec3 spotlightPos = glm::vec3(0, 0, 0); glm::vec3 spotlightConeDir = glm::vec3(0, 0, 0); - -//glm::vec3 spotlightPos = glm::vec3(-3.631, 9.78959, 5.59173); -//glm::vec3 spotlightConeDir = glm::vec3(-65.985, 7.96228, 33.1559); - -glm::vec3 spotlightColor = glm::vec3(0.4, 0.4, 0.9)*3; +glm::vec3 spotlightColor = glm::vec3(0.4, 0.4, 0.9) * 3; float spotlightPhi = 3.14 / 4; + + float lastTime = -1.f; float deltaTime = 0.f; @@ -135,8 +116,8 @@ void updateDeltaTime(float time) { } glm::mat4 createCameraMatrix() { - glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir,glm::vec3(0.f,1.f,0.f))); - glm::vec3 cameraUp = glm::normalize(glm::cross(cameraSide,cameraDir)); + glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f))); + glm::vec3 cameraUp = glm::normalize(glm::cross(cameraSide, cameraDir)); glm::mat4 cameraRotrationMatrix = glm::mat4({ cameraSide.x,cameraSide.y,cameraSide.z,0, cameraUp.x,cameraUp.y,cameraUp.z ,0, @@ -151,7 +132,7 @@ glm::mat4 createCameraMatrix() glm::mat4 createPerspectiveMatrix() { - + glm::mat4 perspectiveMatrix; float n = 0.05; float f = 20.; @@ -160,29 +141,27 @@ glm::mat4 createPerspectiveMatrix() perspectiveMatrix = glm::mat4({ 1,0.,0.,0., 0.,aspectRatio,0.,0., - 0.,0.,(f+n) / (n - f),2*f * n / (n - f), + 0.,0.,(f + n) / (n - f),2 * f * n / (n - f), 0.,0.,-1.,0., }); - - perspectiveMatrix=glm::transpose(perspectiveMatrix); + + perspectiveMatrix = glm::transpose(perspectiveMatrix); return perspectiveMatrix; } -void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color, float roughness, float metallic) { +void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, /*glm::vec3 color*/GLuint textureID, float roughness, float metallic) { glm::mat4 viewProjectionMatrix = createPerspectiveMatrix() * createCameraMatrix(); glm::mat4 transformation = viewProjectionMatrix * modelMatrix; glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation); glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix); - glUniform1f(glGetUniformLocation(program, "exposition"), exposition); - glUniform1f(glGetUniformLocation(program, "roughness"), roughness); glUniform1f(glGetUniformLocation(program, "metallic"), metallic); - glUniform3f(glGetUniformLocation(program, "color"), color.x, color.y, color.z); + //glUniform3f(glGetUniformLocation(program, "color"), color.x, color.y, color.z); glUniform3f(glGetUniformLocation(program, "cameraPos"), cameraPos.x, cameraPos.y, cameraPos.z); @@ -196,95 +175,16 @@ void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec glUniform3f(glGetUniformLocation(program, "spotlightPos"), spotlightPos.x, spotlightPos.y, spotlightPos.z); glUniform3f(glGetUniformLocation(program, "spotlightColor"), spotlightColor.x, spotlightColor.y, spotlightColor.z); glUniform1f(glGetUniformLocation(program, "spotlightPhi"), spotlightPhi); - - glUniform1f(glGetUniformLocation(program, "shadowMapWidth"), SHADOW_WIDTH); - glUniform1f(glGetUniformLocation(program, "shadowMapHeight"), SHADOW_HEIGHT); - - glActiveTexture(GL_TEXTURE0); - glBindTexture(GL_TEXTURE_2D, depthMap); - glUniformMatrix4fv(glGetUniformLocation(program, "lightVP"), 1, GL_FALSE, (float*)&lightVP); - + Core::SetActiveTexture(textureID, "colorTexture", program, 0); Core::DrawContext(context); } -void drawObjectTexture(Core::RenderContext& context, glm::mat4 modelMatrix, GLuint textureID) { - glUseProgram(programTex); - glm::mat4 viewProjectionMatrix = createPerspectiveMatrix() * createCameraMatrix(); - glm::mat4 transformation = viewProjectionMatrix * modelMatrix; - glUniformMatrix4fv(glGetUniformLocation(programTex, "transformation"), 1, GL_FALSE, (float*)&transformation); - glUniformMatrix4fv(glGetUniformLocation(programTex, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix); - glUniform3f(glGetUniformLocation(programTex, "lightPos"), 0, 0, 0); - Core::SetActiveTexture(textureID, "colorTexture", programTex, 0); - Core::DrawContext(context); - -} - -// metoda inicjalizująca mapę głębokości -void initDepthMap() { - glGenFramebuffers(1, &depthMapFBO); - - glGenTextures(1, &depthMap); - glBindTexture(GL_TEXTURE_2D, depthMap); - glTexImage2D(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, - SHADOW_WIDTH, SHADOW_HEIGHT, 0, GL_DEPTH_COMPONENT, GL_FLOAT, NULL); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - - glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO); - glFramebufferTexture2D(GL_FRAMEBUFFER, GL_DEPTH_ATTACHMENT, GL_TEXTURE_2D, depthMap, 0); - glDrawBuffer(GL_NONE); - glReadBuffer(GL_NONE); - glBindFramebuffer(GL_FRAMEBUFFER, 0); -} - -// metoda renderująca obiekt na mapie głębokości -void drawObjectDepth(Core::RenderContext& context, glm::mat4 modelMatrix, glm::mat4 viewProjectionMatrix) { - glUniformMatrix4fv(glGetUniformLocation(programDepth, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix); - glUniformMatrix4fv(glGetUniformLocation(programDepth, "viewProjectionMatrix"), 1, GL_FALSE, (float*)&viewProjectionMatrix); - Core::DrawContext(context); -} - -// renderowanie mapy głębokości -void renderShadowapSun(glm::mat4 lightViewPointMatrix) { +void renderShadowapSun() { float time = glfwGetTime(); glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT); + //uzupelnij o renderowanie glebokosci do tekstury - //ustawianie przestrzeni rysowania - glViewport(0, 0, SHADOW_WIDTH, SHADOW_HEIGHT); - //bindowanie FBO - glBindFramebuffer(GL_FRAMEBUFFER, depthMapFBO); - //czyszczenie mapy głębokości - glClear(GL_DEPTH_BUFFER_BIT); - //ustawianie programu depth - glUseProgram(programDepth); - - // umieszczenie w mapie wszystkich modeli które mają rzucać cień - drawObjectDepth(models::roomContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::bedContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::mattressContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::wardrobeContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::wardrobeDoorLeftContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::wardrobeDoorRightContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::deskContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::chairContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::windowContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::windowsillContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::shelfContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::lampContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::paintingContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::doorContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::doorframeContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::floorthingContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::laptopContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::pstryczekContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::cactusContext, glm::mat4(), lightViewPointMatrix); - drawObjectDepth(models::booksContext, glm::mat4(), lightViewPointMatrix); - - glUseProgram(0); glBindFramebuffer(GL_FRAMEBUFFER, 0); glViewport(0, 0, WIDTH, HEIGHT); @@ -296,9 +196,7 @@ void renderScene(GLFWwindow* window) glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); float time = glfwGetTime(); updateDeltaTime(time); - - // wywołanie funkcji renderowania depth mapy - renderShadowapSun(lightVP); + renderShadowapSun(); //space lamp glUseProgram(programSun); @@ -306,17 +204,10 @@ void renderScene(GLFWwindow* window) glm::mat4 transformation = viewProjectionMatrix * glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)); glUniformMatrix4fv(glGetUniformLocation(programSun, "transformation"), 1, GL_FALSE, (float*)&transformation); glUniform3f(glGetUniformLocation(programSun, "color"), sunColor.x / 2, sunColor.y / 2, sunColor.z / 2); - glUniform1f(glGetUniformLocation(programSun, "exposition"), exposition); Core::DrawContext(sphereContext); glUseProgram(program); - drawObjectPBR(sphereContext, glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::scale(glm::vec3(0.3f)), glm::vec3(0.2, 0.7, 0.3), 0.3, 0.0); - - drawObjectPBR(sphereContext, - glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::eulerAngleY(time) * glm::translate(glm::vec3(1.f, 0, 0)) * glm::scale(glm::vec3(0.1f)), - glm::vec3(0.5, 0.5, 0.5), 0.7, 0.0); - glm::mat4 trans; trans = glm::translate(trans, glm::vec3(8.39806f, 0.021251f, 5.95622f)); trans = glm::rotate(trans, r * glm::radians(180.0f), glm::vec3(0.0f, 1.0f, 0.0f)); @@ -328,45 +219,30 @@ void renderScene(GLFWwindow* window) glm::mat4 transWardrobeDoorL; transWardrobeDoorL = glm::translate(transWardrobeDoorL, glm::vec3(-5.5f, 1.42f, -0.38f)); transWardrobeDoorL = glm::rotate(transWardrobeDoorL, r1 * glm::radians(180.0f), glm::vec3(0.0f, 1.0f, 0.0f)); - - drawObjectPBR(models::roomContext, glm::mat4(), glm::vec3(0.1, 0.4, 0.6), 0.8f, 0.0f); - drawObjectPBR(models::bedContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::mattressContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::wardrobeContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::wardrobeDoorLeftContext, transWardrobeDoorL, glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::wardrobeDoorRightContext, transWardrobeDoorR, glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::deskContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::chairContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::windowContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::windowsillContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::shelfContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::lampContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::paintingContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::doorContext, trans, glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::doorframeContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::floorthingContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::booksContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::cactusContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::laptopContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - drawObjectPBR(models::pstryczekContext, glm::mat4(), glm::vec3(1, 1, 1), 0.8f, 0.0f); - glm::vec3 spaceshipSide = glm::normalize(glm::cross(spaceshipDir, glm::vec3(0.f, 1.f, 0.f))); - glm::vec3 spaceshipUp = glm::normalize(glm::cross(spaceshipSide, spaceshipDir)); - glm::mat4 specshipCameraRotrationMatrix = glm::mat4({ - spaceshipSide.x,spaceshipSide.y,spaceshipSide.z,0, - spaceshipUp.x,spaceshipUp.y,spaceshipUp.z ,0, - -spaceshipDir.x,-spaceshipDir.y,-spaceshipDir.z,0, - 0.,0.,0.,1., - }); + //drawObjectPBR(sphereContext, glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)) * glm::eulerAngleY(time / 3) * glm::translate(glm::vec3(4.f, 0, 0)) * glm::scale(glm::vec3(0.3f)), glm::vec3(0.2, 0.7, 0.3), 0.3, 0.0); - drawObjectPBR(shipContext, - glm::translate(spaceshipPos) * specshipCameraRotrationMatrix * glm::eulerAngleY(glm::pi()) * glm::scale(glm::vec3(0.03f)), - glm::vec3(0.3, 0.3, 0.5), - 0.2,1.0 - ); + drawObjectPBR(models::roomContext, glm::mat4(), texture::room, 0.8f, 0.0f); + drawObjectPBR(models::bedContext, glm::mat4(), texture::bed, 0.8f, 0.0f); + drawObjectPBR(models::mattressContext, glm::mat4(), texture::mattress, 0.8f, 0.0f); + drawObjectPBR(models::wardrobeContext, glm::mat4(), texture::wardrobe, 0.8f, 0.0f); + drawObjectPBR(models::wardrobeDoorLeftContext, transWardrobeDoorL, texture::wardrobeDoorLeft, 0.8f, 0.0f); + drawObjectPBR(models::wardrobeDoorRightContext, transWardrobeDoorR, texture::wardrobeDoorRight, 0.8f, 0.0f); + drawObjectPBR(models::deskContext, glm::mat4(), texture::desk, 0.8f, 0.0f); + drawObjectPBR(models::chairContext, glm::mat4(), texture::chair, 0.8f, 0.0f); + drawObjectPBR(models::windowContext, glm::mat4(), texture::window, 0.8f, 0.0f); + drawObjectPBR(models::windowsillContext, glm::mat4(), texture::windowsill, 0.8f, 0.0f); + drawObjectPBR(models::shelfContext, glm::mat4(), texture::shelf, 0.8f, 0.0f); + //drawObjectPBR(models::lampContext, glm::mat4(), texture::lamp, 0.8f, 0.0f); + drawObjectPBR(models::paintingContext, glm::mat4(), texture::painting, 0.8f, 0.0f); + drawObjectPBR(models::doorContext, trans, texture::door, 0.8f, 0.0f); + drawObjectPBR(models::doorframeContext, glm::mat4(), texture::doorframe, 0.8f, 0.0f); + drawObjectPBR(models::floorthingContext, glm::mat4(), texture::floorthing, 0.8f, 0.0f); + drawObjectPBR(models::booksContext, glm::mat4(), texture::books, 0.8f, 0.0f); + drawObjectPBR(models::cactusContext, glm::mat4(), texture::cactus, 0.8f, 0.0f); + drawObjectPBR(models::laptopContext, glm::mat4(), texture::laptop, 0.8f, 0.0f); + drawObjectPBR(models::pstryczekContext, glm::mat4(), texture::pstryczek, 0.8f, 0.0f); - spotlightPos = spaceshipPos + 0.2 * spaceshipDir; - spotlightConeDir = spaceshipDir; glUseProgram(0); glfwSwapBuffers(window); @@ -395,16 +271,9 @@ void init(GLFWwindow* window) { glfwSetFramebufferSizeCallback(window, framebuffer_size_callback); - // enable testowania mapy głębokości glEnable(GL_DEPTH_TEST); - program = shaderLoader.CreateProgram("shaders/shader_9_1.vert", "shaders/shader_9_1.frag"); programSun = shaderLoader.CreateProgram("shaders/shader_8_sun.vert", "shaders/shader_8_sun.frag"); - - // program odpowiadający za generowanie mapy głębokości - programDepth = shaderLoader.CreateProgram("shaders/shader_depth.vert", "shaders/shader_depth.frag"); - - programTex = shaderLoader.CreateProgram("shaders/shader_5_1_tex.vert", "shaders/shader_5_1_tex.frag"); loadModelToContext("./models/room.obj", models::roomContext); loadModelToContext("./models/bed.obj", models::bedContext); @@ -426,6 +295,7 @@ void init(GLFWwindow* window) loadModelToContext("./models/cactus.obj", models::cactusContext); loadModelToContext("./models/pstryczek.obj", models::pstryczekContext); loadModelToContext("./models/laptop.obj", models::laptopContext); + loadModelToContext("./models/sphere.obj", models::sphereContext); texture::room = Core::LoadTexture("textures/room.png"); texture::oak = Core::LoadTexture("textures/dark_oak.jpg"); @@ -436,9 +306,18 @@ void init(GLFWwindow* window) texture::lamp = Core::LoadTexture("textures/lamp.png"); texture::painting = Core::LoadTexture("textures/painting.png"); texture::door = Core::LoadTexture("textures/door.png"); - - // inicjalizacja mapy głębokości - initDepthMap(); + texture::wardrobe = Core::LoadTexture("textures/dark_oak.jpg"); + texture::wardrobeDoorLeft = Core::LoadTexture("textures/dark_oak.jpg"); + texture::wardrobeDoorRight = Core::LoadTexture("textures/dark_oak.jpg"); + texture::desk = Core::LoadTexture("textures/dark_oak.jpg"); + texture::mattress = Core::LoadTexture("textures/white.jpg"); + texture::doorframe = Core::LoadTexture("textures/white.jpg"); + texture::shelf = Core::LoadTexture("textures/white.jpg"); + texture::pstryczek = Core::LoadTexture("textures/white.jpg"); + texture::floorthing = Core::LoadTexture("textures/white.jpg"); + texture::window = Core::LoadTexture("textures/white.jpg"); + texture::windowsill = Core::LoadTexture("textures/white.jpg"); + texture::chair = Core::LoadTexture("textures/black.jpg"); } @@ -450,42 +329,30 @@ void shutdown(GLFWwindow* window) //obsluga wejscia void processInput(GLFWwindow* window) { - glm::vec3 spaceshipSide = glm::normalize(glm::cross(spaceshipDir, glm::vec3(0.f,1.f,0.f))); - glm::vec3 spaceshipUp = glm::vec3(0.f, 1.f, 0.f); + glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f))); + glm::vec3 cameraUp = glm::vec3(0.f, 1.f, 0.f); float angleSpeed = 0.05f * deltaTime * 60; float moveSpeed = 0.05f * deltaTime * 60; if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { glfwSetWindowShouldClose(window, true); } if (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS) - spaceshipPos += spaceshipDir * moveSpeed; + cameraPos += cameraDir * moveSpeed; if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS) - spaceshipPos -= spaceshipDir * moveSpeed; + cameraPos -= cameraDir * moveSpeed; if (glfwGetKey(window, GLFW_KEY_X) == GLFW_PRESS) - spaceshipPos += spaceshipSide * moveSpeed; + cameraPos += cameraSide * moveSpeed; if (glfwGetKey(window, GLFW_KEY_Z) == GLFW_PRESS) - spaceshipPos -= spaceshipSide * moveSpeed; + cameraPos -= cameraSide * moveSpeed; if (glfwGetKey(window, GLFW_KEY_Q) == GLFW_PRESS) - spaceshipPos += spaceshipUp * moveSpeed; + cameraPos += cameraUp * moveSpeed; if (glfwGetKey(window, GLFW_KEY_E) == GLFW_PRESS) - spaceshipPos -= spaceshipUp * moveSpeed; + cameraPos -= cameraUp * moveSpeed; if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) - spaceshipDir = glm::vec3(glm::eulerAngleY(angleSpeed) * glm::vec4(spaceshipDir, 0)); + cameraDir = glm::vec3(glm::eulerAngleY(angleSpeed) * glm::vec4(cameraDir, 0)); if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) - spaceshipDir = glm::vec3(glm::eulerAngleY(-angleSpeed) * glm::vec4(spaceshipDir, 0)); + cameraDir = glm::vec3(glm::eulerAngleY(-angleSpeed) * glm::vec4(cameraDir, 0)); - cameraPos = spaceshipPos - 0.5 * spaceshipDir + glm::vec3(0, 1, 0) * 0.2f; - cameraDir = spaceshipDir; - - if (glfwGetKey(window, GLFW_KEY_1) == GLFW_PRESS) - exposition -= 0.05; - if (glfwGetKey(window, GLFW_KEY_2) == GLFW_PRESS) - exposition += 0.05; - - if (glfwGetKey(window, GLFW_KEY_3) == GLFW_PRESS) { - printf("spaceshipPos = glm::vec3(%ff, %ff, %ff);\n", spaceshipPos.x, spaceshipPos.y, spaceshipPos.z); - printf("spaceshipDir = glm::vec3(%ff, %ff, %ff);\n", spaceshipDir.x, spaceshipDir.y, spaceshipDir.z); - } if (glfwGetKey(window, GLFW_KEY_7)) { if (r < -0.55) { r = -0.55; } @@ -507,12 +374,8 @@ void processInput(GLFWwindow* window) if (r1 >= 0) { r1 = 0; } else { r1 = r1 + 0.01; } if (r2 <= 0) { r2 = 0; } - else { r2 = r2 - 0.01; } + else { r2 = r2 - 0.01; } } - - - //cameraDir = glm::normalize(-cameraPos); - } // funkcja jest glowna petla diff --git a/cw 9/textures/black.jpg b/cw 9/textures/black.jpg new file mode 100644 index 0000000..70ddab9 Binary files /dev/null and b/cw 9/textures/black.jpg differ diff --git a/cw 9/textures/red.jpg b/cw 9/textures/red.jpg new file mode 100644 index 0000000..149fa71 Binary files /dev/null and b/cw 9/textures/red.jpg differ diff --git a/cw 9/textures/white.jpg b/cw 9/textures/white.jpg new file mode 100644 index 0000000..fd67463 Binary files /dev/null and b/cw 9/textures/white.jpg differ