NvModelVK Class Reference

Drawable geometric model using VK vertex buffers. More...

#include <NvModelVK.h>

List of all members.

Public Member Functions

void Draw (VkCommandBuffer &cmd)
 Draw to an open command buffer.
uint32_t getIndexCount ()
 Get the index count (for advanced rendering).
NvModelgetModel ()
 Get the low-level geometry data.
void computeCenter ()
 Updates the center point of the model.
nv::vec3f GetMinExt () const
nv::vec3f GetMaxExt () const
VkPipelineVertexInputStateCreateInfo & getVIInfo ()
 Get the Vertex input state for creating a rendering pipeline object for this model.
VkPipelineInputAssemblyStateCreateInfo & getIAInfo ()
 Get the Input Assembly state for creating a rendering pipeline object for this model.
VkIndexType getIndexType () const
 useful when doing custom rendering
const NvVkBufferVBO () const
const NvVkBufferIBO () const

Static Public Member Functions

static NvModelVKCreateFromObj (NvVkContext &vk, uint8_t *data, float scale, bool computeNormals=false, bool computeTangents=false)
 Create a renderable model from OBJ data.
static NvModelVKCreateFromPreprocessed (NvVkContext &vk, uint8_t *data)
 Create a renderable model from a preprocessed "NVM" file, which is much faster and more efficient to load than OBJ.

Public Attributes

nv::vec3f m_center
 The computed center of the bounding box of the app.


Detailed Description

Drawable geometric model using VK vertex buffers.

Supports loading from OBJ file data. Contains positions as well as optional normals, UVs, and tangent vectors


Member Function Documentation

static NvModelVK* NvModelVK::CreateFromObj ( NvVkContext vk,
uint8_t *  data,
float  scale,
bool  computeNormals = false,
bool  computeTangents = false 
) [static]

Create a renderable model from OBJ data.

Parameters:
[in] vk Vulkan device/queue to render to
[in] data pointer to OBJ file data
[in] scale the target radius to which we want the model scaled, or <0 if no scaling should be done
[in] computeNormals indicate whether per-vertex normals should be estimated and added
[in] computeTangents indicate whether per-vertex tangent vectors should be estimated and added
Returns:
a pointer to the new model

static NvModelVK* NvModelVK::CreateFromPreprocessed ( NvVkContext vk,
uint8_t *  data 
) [static]

Create a renderable model from a preprocessed "NVM" file, which is much faster and more efficient to load than OBJ.

Parameters:
[in] vk Vulkan device/queue to render to
[in] data pointer to NVM file data
Returns:
a pointer to the new model

void NvModelVK::Draw ( VkCommandBuffer &  cmd  ) 

Draw to an open command buffer.

Parameters:
[in] the command buffer to draw into

VkPipelineInputAssemblyStateCreateInfo& NvModelVK::getIAInfo (  )  [inline]

Get the Input Assembly state for creating a rendering pipeline object for this model.

Returns:
the IAStateInfo for this model

uint32_t NvModelVK::getIndexCount (  )  [inline]

Get the index count (for advanced rendering).

Returns:
the index count

NvModel* NvModelVK::getModel (  ) 

Get the low-level geometry data.

Returns the underlying geometry model data instance

Returns:
a pointer to the NvModel instance that holds the client-memory data

VkPipelineVertexInputStateCreateInfo& NvModelVK::getVIInfo (  )  [inline]

Get the Vertex input state for creating a rendering pipeline object for this model.

Returns:
the VIStateInfo for this model


The documentation for this class was generated from the following file: