- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我花了几天时间构建了一个使用简单光照在 OpenGL 中渲染立方体的工作示例
我有:
vertices = {...};
normals = {...};
vertex_indices = {...};
normal_indices = {...};
(1) 我设置我的 VBO
glBufferSubData(GL_ARRAY_BUFFER, 0, vertSize, &vertices[0]); // vertices
glBufferSubData(GL_ARRAY_BUFFER, vertSize, normSize, &normals[0]); // normals
(2) 我启用我的顶点指针
glEnableVertexAttribArray(0);
glVertexAttribPointer(0,..)
glEnableVertexAttribArray(1);
glVertexAttribPointer(1,..)
(3) 我还设置了我的索引缓冲区
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indcSize, & vertex_indices[0], GL_STATIC_DRAW);
然后在我的渲染方法中调用glDrawElements
glDrawElements(GL_TRIANGLES, (int)vertex_indices.size(), GL_UNSIGNED_INT, 0);
我没有在任何地方传递正常索引,但一切似乎都运行良好。
我认为我没有正确理解 glDrawElements。在没有正常指数的情况下,照明是如何工作的? glDrawElements 应该只获取顶点索引吗?
1 Câu trả lời
I don't think I understand glDrawElements correctly. How did the lighting work without the normal indices? was glDrawElements suppose to only get the vertex indices?
在 OpenGL 中,每个属性没有单独的索引。就 OpenGL 而言,顶点是 tất cả 属性的 n 元组,例如位置、颜色、法向量、tex 坐标等等。
对于立方体,您至少需要 24 个顶点。只有 8 个角位置,但每个角都连接到 3 个不同的面,每个面都有不同的法线。这意味着,您需要在每个角上有 3 个单独的顶点,它们都在同一位置,但它们的法线方向都不同。
Vì vậy,glDrawElements
仅使用一个索引数组,这是同时指向所有启用的顶点属性数组 的索引。您的 normal_indices
数组根本没有被使用。如果它仍然按预期工作,那么您的正常数据恰好以正确的方式组织。
关于opengl - OpenGL 是如何知道如何通过 glDrawElements() 使用普通数据的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31642410/
Câu hỏi dành cho người mới bắt đầu sử dụng Android. Được rồi, tôi đã ghi thành công vào tập tin. Ví dụ. //Lấy tên tệp String filename = getResources().getString(R.string.filename
Tôi đã lưu cùng một hình ảnh vào /data/data/mypackage/img/ và bây giờ tôi muốn hiển thị toàn màn hình này, tôi đã thử sử dụng ACTION_VIEW để hiển thị ứng dụng chuẩn Android nhưng nó không hiển thị hình ảnh từ /data/data/mypackage/img/
Tôi đang sử dụng Xcode 9, Swift 4. Tôi đang cố gắng hiển thị một hình ảnh trong ImageView từ một URL bằng cách sử dụng mã sau: func getImageFromUrl(sourceUrl: String) -> UII
Tôi gặp sự cố khi cài đặt genymotion trên Ubuntu. Chủ yếu là tôi không thể gỡ lỗi cơ sở dữ liệu của mình vì tôi không thể thấy nội dung của thư mục /data/ thông qua DBMS trong eclipse hay thông qua adb trong shell. Không hiển thị
Tôi đang cố gắng đăng một số dữ liệu JSON bằng PHP. Nhưng có điều gì đó không ổn. Đây là html của tôi -- {% cho x trong tập hợp %}
Tôi nhận thấy kết quả khác nhau từ cả hai cách tiếp cận. Tại sao lại như vậy? Tôi biết những gì đang xảy ra trên lm nhưng không thể hiểu được những gì đang xảy ra trên tslm. > thư viện(dự báo) > set.seed(2) > tts lm(t
Tôi không chắc tại sao điều này lại xảy ra! Tôi có một lớp được spring data elasticsearch và spring data jpa sử dụng nhưng tôi gặp lỗi khi thử chạy ứng dụng của mình. Lỗi khi tạo
Trong biểu đồ vega này, nếu tôi tải xuống và chuyển đổi flare-dependencies.json bằng lệnh jq sang csv sau, jq -r '(map(keys) | add | unique) as
Tôi đang nộp một dự án trong đó tôi phải tạo một cơ sở dữ liệu mysql có chứa một bảng. Mọi thứ đều ổn nên tôi chỉ muốn kiểm tra xem làm thế nào để gửi tất cả các tệp nén của mình cho người khác sử dụng máy tính khác. Về cơ bản, làm thế nào để tôi tạo tệp cơ sở dữ liệu của mình cho một máy tính khác,
Tôi có một ứng dụng ghi các tập tin văn bản vào bộ nhớ trong. Tôi muốn xem xét kỹ hơn máy tính của mình. Tôi chạy Toast.makeText để hiển thị đường dẫn và nó ghi: /data/data/my-package nhưng khi tôi vào An của Android Studio
Tôi thích cách trình giả lập Genymotion tải Android với tốc độ đáng kinh ngạc như vậy. Tốc độ rất tốt, nhưng hiệu suất vẫn còn đôi chút chập chờn. Cách truy cập trình giả lập Genymotion từ File Explorer trong Eclipse
Tôi cần thay đổi định dạng của hộp văn bản trong Silverlight. Dữ liệu được liên kết thông qua MVVM. Ví dụ, có một thuộc tính int và tôi thêm 1 vào giá trị trong bộ thiết lập và gọi OnPropertyChanged
Tôi muốn gửi yêu cầu tới Youtube Data API, nhưng tôi không cần truy cập vào bất kỳ thông tin người dùng nào. Tôi chỉ muốn duyệt các video công khai và hiển thị video dựa trên một thuật ngữ tìm kiếm. Tôi có thể làm điều này mà không cần sự cho phép không? Câu trả lời hay nhất YouTube
Tôi đã thiết lập ứng dụng Twilio và muốn gửi thông tin cập nhật cho mọi người nhưng không muốn trả lời từng tin nhắn riêng lẻ. Tôi chỉ muốn họ gọi điện nếu họ gặp vấn đề. Mọi thứ đều hoạt động tốt nhưng tôi muốn hiển thị văn bản đến khi tôi gửi để đảm bảo không bỏ sót bất kỳ vấn đề nào. Tôi đang sử dụng p
Tôi có một trang web có biểu mẫu (hiện tại là HTML thuần túy, nhưng chúng tôi đang chuyển sang JQuery). Luồng như sau: Lấy dữ liệu đầu vào của người dùng --- 5 số nguyên Gọi dịch vụ web qua REST Chạy một số phép tính ở phía máy chủ... và tạo ra
Giả sử chúng ta có một tệp có tên là configuration.js và khi chúng ta nhìn vào bên trong, chúng ta thấy: 'use strict'; var profile = { "project": "%Projec
Đây là một phần mở rộng của Câu hỏi trước: Bây giờ tôi có thể trả về dữ liệu JSON thành công từ Bộ điều khiển CI của mình, nó trả về: {"results":[{"id":"1","Sourc
Có cách nào hiệu quả để xóa toàn bộ dung lượng lưu trữ tài liệu của CBL trong iOS không? Tôi có thắc mắc về vấn đề này hoặc nếu ai đó biết cách làm cho ứng dụng hoạt động như thể nó vừa được cài đặt thì sẽ rất hữu ích. Chúng tôi đang làm việc để đảm bảo rằng việc đăng xuất của chúng tôi thực sự thiết lập ứng dụng thành
Tôi có một ứng dụng Rails giao tiếp với các ứng dụng Rails khác để chèn dữ liệu. Tôi đang sử dụng phương thức jQuery $.post để chèn dữ liệu. Ứng dụng Rails khác của tôi hiển thị 200 OK cho phần chèn. Nhưng trong
Tôi đang chạy thử nghiệm đơn vị cho lệnh gọi API phục vụ yêu cầu đăng bài. Tôi đang chuyển nội dung yêu cầu và phải trả về phản hồi dưới dạng dữ liệu tài khoản. Nhưng tôi chỉ nhận được lỗi khẳng định Lưu ý: Dữ liệu được lấy từ Azure spec.js const accou
Tôi là một lập trình viên xuất sắc, rất giỏi!