Presentation is loading. Please wait.

Presentation is loading. Please wait.

Based on paper by: Rahul Khardekar, Sara McMains Mechanical Engineering University of California, Berkeley ASME 2006 International Design Engineering Technical.

Similar presentations


Presentation on theme: "Based on paper by: Rahul Khardekar, Sara McMains Mechanical Engineering University of California, Berkeley ASME 2006 International Design Engineering Technical."— Presentation transcript:

1 Based on paper by: Rahul Khardekar, Sara McMains Mechanical Engineering University of California, Berkeley ASME 2006 International Design Engineering Technical Conferences 1

2 Introduction. Previous work. GPU. Depth rendering. Computing volume of support on the GPU. Results. Improvements. Recent work. 2

3 Additive manufacturing. The model is sliced and filled. Each slice is glued with its previous slice. 3

4 Parallel slices. Depends on the slicing direction. Which slicing direction to choose ? Several consideration are taken into account when choosing slicing direction: – Printing time. – Accuracy, especially in sharp features. – Strength. – Surface finish. – Volume of support. 4

5 Another printed material that should be removed after printing. Why ? – Overhanging layers – Hollow parts Types – Same material – porous structures that are manually removed – Several materials – material that dissolves with cold water. 5

6 Why minimize ? – Less material, lower cost. – Reduce printing time. – Less damage to the model. Support Structures 4 W. Support Structures 4 W 6

7 The amount of support volume depends on the slicing/printing z direction. Given a triangulated mesh M, what is the build direction d that minimizes the volume of the support structures V ? V(M,d): complex non-differentiable function. Need a method to compute V(M,d). – Challenges: Speed. Accuracy. 7

8 Thompson & Crawford [97] – find a direction that results in a zero support. Allen & Dutta [95] – Find direction that gives the minimal volume of support by examining directions parallel and orthogonal to the model convex hull. Majhi et al. [99] shows that Allen & Dutta’s algorithm is wrong is not sufficient. Majhi et al. [98] & Agarwal et al. [00], presents an algorithm for finding the minimal volume of support, but only for convex models. Other geometric methods for computing the volume of support are time consuming. 8

9 Graphics Processing Unit. Very efficient in parallel computing. – Nvidia GTX 980: 2048 Cores Texture fill rate: 144 GigaTexels/sec. 4 GB memory Supports OpenGL 4.4 3000 NIS – Nvidia GTX660: 960 Cores Texture fill rate: 78.4 GigaTexels/sec. 2 GB memory Supports OpenGL 4.3 1000 NIS Serial memory model. (not appropriate for random access) Leading companies: Nvidia, ATI. OpenGL: API for GPUs – Client – Server architecture. 9

10 General Purpose GPU. Due to its fast parallel computing, GPU is used for general non-rendering tasks. Algorithms are adapted to benefit from the GPU capabilities. OpenCL – Open Computation Library – ViennaCL: fast sparse system solver using OpenCL. CUDA: Compute Unified Device Architecture – by Nvidia 10

11 11

12 Traditional GPUs had a fixed functionality. – OpenGL 1.2. Modern GPUs allow programmable stages 12

13 Each fragment has several attributes: – Color – Depth Each fragment is passed two tests (if requested) – Depth test: hidden surfaces removal. – Stencil test: limiting the rendering area Fragment that doesn’t pass the tests is not passed to the framebuffer. 13

14 Early OpenGL: Direct mode – Pass the geometry each frame. From OpenGL 3, Direct mode is deprecated. GLSL: OpenGL Shading Language – Maintained by Khronos group. 14

15 Oriented mesh has a consistent normal orientation of its faces. – CCW: Normals are facing outside the mesh. – CW: Normals are facing inside the mesh. Given a view vector V, and a face F having normal N. – F is front facing if is negative (CCW). – Back facing otherwise. 15

16 Z-buffer algorithm – Each pixel stores in a depth buffer the closest fragment color. – Screen space algorithm. Depth Peeling: – Technique for rendering transparent objects. – Use Two depth buffers One is the result of previous rendering iteration. 16

17 View direction 17

18 Use two depth buffer First buffer is the depth stored from previous step. – Discard fragments if their Z value is less than the value in the buffer. Second buffer is used for regular Z-buffer. – Discard fragments if their Z value is greater than the value in the buffer. Copy second buffer to first after each iteration. 18

19 Use depth peeling-like algorithm The volume of support is divided into two categories: – Space between areas visible from printing direction and the printing base. First layer. – Space between front faces and back faces that hides them. Printing base 19

20 Input: – M : oriented closed manifold mesh. – V : printing direction. Output: – Volume of support of M from V direction. 1)Initialization – Initialize height_texture, a floating point texture, with screen dimensions and 0 value. – Object bounding box calculation using the GPU. – Calculate pixel area. 2)Setup Camera – Orthographic projection – Looks at the center of the model BBOX. – Placed at the center of the BBOX in XY and minimal BBOX Z at the printing direction. 20

21 3.Render the first layer using standard Z-buffer and save the depth to height_texture. 4.n=0. 5.while (true) { 5.1 Render the (n+1)th front facing layer. 5.2 If (there is no front faces in previous step) break; 5.3 Render the (n)th backfacing layers (only on pixels rendered in step 4.1 – using stencil test) 5.4 Substract depths from step 4.1 and 4.2 and save to a temporary texture. 5.5 Add the result of 4.4 to height_texture. } 6.S  The sum of all values in height_texture. 7.Return (S*pixel_area). 21

22 Sum values of four pixels (i,j), (i,j+N/2), (i+N/2,j), (i+N/2,j+N/2) and store it in pixel (i,j). Iterate until no division is allowed. – log(N) iterations. 22

23 Frame buffer 1024*1024. GPU: NVIDIA 6800 GO CPU: Pentium 1.6 GHz 512 MB RAM Compared with Insight printing software (Stratasys) 23

24 99% accuracy 24

25 25

26 26

27 27

28 Significantly faster than software implementations. 1% accuracy error. Several error sources: – Triangulation error (compared with the designed model). – Discretization error (pixel size) – Floating point error. 28

29 Other algorithm with one rendering pass. – Initialize for each pixel a buffer of values – Add the printing plane to the model. – Render the object and store the z values of all fragments on the same pixel. – After rendering, sort the values at each pixel, and sum the differences between each pair. 29

30 Pixel buffer 30

31 Accuray – Use the geometry shader to better rasterize thin triangles. Calculate exact voxel volume, by computing intersection between triangle and box – time consuming. 31

32 J. Vanek, J. A. G. Galicia, B. Benes. “Clever Support: Efficient Support Structure Generation for Digital Fabrication”, Eurographics Symposium on Geometry Processing 2014. Find orientation with minimal hanging areas. Sample these areas according to printer resolution. Build a trees of support from all sample points by growing support structures from each point. Automatic Reduce printing time by 30% and printed material by 40%. 32

33 33

34 34


Download ppt "Based on paper by: Rahul Khardekar, Sara McMains Mechanical Engineering University of California, Berkeley ASME 2006 International Design Engineering Technical."

Similar presentations


Ads by Google