Skip to main content

Polygonizing Implicit Surfaces in a Purely Functional Way

  • Conference paper
  • First Online:
Implementation of Functional Languages (IFL 2000)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2011))

Included in the following conference series:

  • 210 Accesses

Abstract

Implicit surfaces are defined by a real valued function. They can easily be defined and manipulated and have therefore gained great popularity in computer graphics. This paper presents a purely functional implementation of a well known algorithm to polygonize implicit surfaces, based on spatial partitioning by means of octrees. While conventional implementations are laden with practical issues, our implementation in Clean is straightforward, implements the algorithm very concisely and makes essential use of lazy evaluation.

Further we present two enhancements to this basic algorithm: Introducing a memo function greatly improves time efficiency. The appearance of a visualized implicit surface can be greatly enhanced by providing normal vector information. For calculating normal vectors we adopt a lazy implementation of automatic differentiation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Andrea L. Ames, David R. Nadeau, John L. Moreland. VRML 2.0 Sourcebook. New York, NY, 1996

    Google Scholar 

  2. Jules Bloomenthal. Polygonization of Implicit Surfaces. Computer Aided Geometric Design, vol. 5, no. 4, 1988, pp. 341–355

    Article  MATH  MathSciNet  Google Scholar 

  3. Jules Bloomenthal. An Implicit Surface Polygonizer. In Paul Heckbert, editor. Graphics Gems IV. New York, NY, 1994

    Google Scholar 

  4. Andreas Griewank. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Philadelphia, PA, 2000

    MATH  Google Scholar 

  5. John Hughes. Lazy Memo-functions. In Jean-Pierre Jouannaud: Functional Programming Languages and Computer Architecture. LNCS 201, Nancy, France, 1985

    Google Scholar 

  6. John Hughes. Why functional programming matters. The Computer Journal, vol.32, no. 2, 1989

    Google Scholar 

  7. Jerzy Karczmarczuk. Functional Di.erentiation of Computer Programs. Proc. Third International Summer School on Advanced Functional Programming, Baltimore, MD, 1998, pp. 195–203

    Google Scholar 

  8. Jerzy Karczmarczuk. Functional Coding of Differential Forms. Proc. First Scottish Workshop on Functional Programming, Stirling, Scotland, 1999

    Google Scholar 

  9. Jerzy Karczmarczuk. Geometric Modelling in Functional Style. Proc. Third Latin-American Conference on Functional Programming, Recife, Brazil, 1999

    Google Scholar 

  10. John O'Donnel, Gudula RĂĽnger. A Coordination Level Functional Implementation of the Hierarchical Radiosity Algorithm. Draft proc. Glasgow Workshop on Functional Programming, Ullapool, Scotland, 1997

    Google Scholar 

  11. Alexander Pasko, Valery Adzhiev, Alexei Sourin, Vladimir Savchenko. Function Representation in Geometric Modeling: Concepts, Implementation and Applications. The Visual Computer, vol. 11, no. 8, 1995, pp. 429–446

    Article  Google Scholar 

  12. Simon Peyton Jones, Simon Marlow, Conal Elliott. Stretching the storage Manager: Weak Pointers and Stable Names in Haskell. In Pieter Koopman, Chris Clack: Implementation of Functional Languages. LNCS 1868, Lochem, The Netherlands, 1999

    Google Scholar 

  13. Rinus Plasmeijer, Marko van Eekelen. Concurrent Clean Language Report-version 1.3. Technical Report CSI-R9816, Computing Science Institute, University of Nijmegen, The Netherlands, 1998

    Google Scholar 

  14. Louis B. Rall, George F. Corliss. An Introduction to Automatic Differentiation. In Martin Berz, Christian Bischof, George Corliss, Andreas Griewank, Editors. Computational Differentiation: Techniques, Applications, and Tools SIAM, Philadelphia, PA, 1996

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Zörner, T.HG., Koopman, P., van Eekelen, M., Plasmeijer, R. (2001). Polygonizing Implicit Surfaces in a Purely Functional Way. In: Mohnen, M., Koopman, P. (eds) Implementation of Functional Languages. IFL 2000. Lecture Notes in Computer Science, vol 2011. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45361-X_10

Download citation

  • DOI: https://doi.org/10.1007/3-540-45361-X_10

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-41919-8

  • Online ISBN: 978-3-540-45361-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics