As 3D shape scanning technology evolves, digital shape information becomes easily available in the form of points cloud or triangular mesh. Surface normal information plays an important role in many 3D shape modeling application, including (but not limited to) smooth surface reconstruction, feature extraction, and segmentation. Presented in this thesis is how to estimate the surface normal information from a triangular mesh in a more accurate manner. The normal estimation method described here is based on ‘normal voting’ algorithm combined with the following enhancements before and after applying normal voting algorithm: (1) detecting creases to improve normal accuracy around the sharp edges, and (2) secondary voting by use of the vertex normal information obtained from the first normal voting. The secondary voting process gives refined normal information for a vertex which matches well with its neighbor. The test results for a synthetic data set with the exact normal information show that the propose algorithm estimates the normal vector much more precisely than the original normal voting.