Guest User

Untitled

a guest
Nov 13th, 2018
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.53 KB | None | 0 0
  1. RenderingEngine.prototype.getPixel = function(x, y, drawObject){
  2. var framebuffer = gl.createFramebuffer();
  3. gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  4. framebuffer.width = this.canvas.width;
  5. framebuffer.height = this.canvas.height;
  6.  
  7. var depthBuffer = gl.createRenderbuffer();
  8. gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
  9.  
  10. // allocate renderbuffer
  11. gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, this.canvas.width, this.canvas.height);
  12.  
  13. // attach renderebuffer
  14. gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
  15.  
  16. if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) {
  17. alert("this combination of attachments does not work");
  18. }
  19. gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  20.  
  21. drawObject.draw();
  22.  
  23. var pixel = new Uint8Array(4);
  24. gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);
  25. console.log(pixel);
  26. return pixel;
  27.  
  28. RenderingEngine.prototype.getPixel = function(x, y, drawObject){
  29. var framebuffer = gl.createFramebuffer();
  30. gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  31. framebuffer.width = this.canvas.width;
  32. framebuffer.height = this.canvas.height;
  33.  
  34. var depthBuffer = gl.createRenderbuffer();
  35. gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
  36.  
  37.  
  38. // allocate renderbuffer
  39. gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, framebuffer.width, framebuffer.height);
  40.  
  41. // attach renderebuffer
  42. gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
  43.  
  44. var colorBuffer = gl.createRenderbuffer();
  45. gl.bindRenderbuffer(gl.RENDERBUFFER, colorBuffer);
  46. // allocate colorBuffer
  47. gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, framebuffer.width, framebuffer.height);
  48.  
  49. // attach colorbuffer
  50. gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorBuffer);
  51.  
  52. if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) {
  53. alert("this combination of attachments does not work");
  54. }
  55.  
  56. renderingEngine.draw(drawObject);
  57.  
  58. var pixel = new Uint8Array(4);
  59. gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);
  60. console.log(pixel);
  61. return pixel;
  62.  
  63. RenderingEngine.prototype.getPixel = function(x, y, drawObject){
  64. var framebuffer = gl.createFramebuffer();
  65. gl.bindFramebuffer(gl.FRAMEBUFFER, framebuffer);
  66. framebuffer.width = this.canvas.width;
  67. framebuffer.height = this.canvas.height;
  68.  
  69. var depthBuffer = gl.createRenderbuffer();
  70. gl.bindRenderbuffer(gl.RENDERBUFFER, depthBuffer);
  71.  
  72.  
  73. // allocate renderbuffer
  74. gl.renderbufferStorage(gl.RENDERBUFFER, gl.DEPTH_COMPONENT16, framebuffer.width, framebuffer.height);
  75.  
  76. // attach renderebuffer
  77. gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.DEPTH_ATTACHMENT, gl.RENDERBUFFER, depthBuffer);
  78.  
  79. var colorBuffer = gl.createRenderbuffer();
  80. gl.bindRenderbuffer(gl.RENDERBUFFER, colorBuffer);
  81. // allocate colorBuffer
  82. gl.renderbufferStorage(gl.RENDERBUFFER, gl.RGBA4, framebuffer.width, framebuffer.height);
  83.  
  84. // attach colorbuffer
  85. gl.framebufferRenderbuffer(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.RENDERBUFFER, colorBuffer);
  86.  
  87. if (gl.checkFramebufferStatus(gl.FRAMEBUFFER) != gl.FRAMEBUFFER_COMPLETE) {
  88. alert("this combination of attachments does not work");
  89. }
  90.  
  91. renderingEngine.draw(drawObject);
  92.  
  93. var pixel = new Uint8Array(4);
  94. gl.readPixels(x, y, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, pixel);
  95. console.log(pixel);
  96. return pixel;
  97. }
  98.  
  99. COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture
  100. COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture + DEPTH_ATTACHMENT = DEPTH_COMPONENT16 renderbuffer
  101. COLOR_ATTACHMENT0 = RGBA/UNSIGNED_BYTE texture + DEPTH_STENCIL_ATTACHMENT = DEPTH_STENCIL renderbuffer
Add Comment
Please, Sign In to add comment