Volume rendering methods are widely used for the high-quality visualization of various 3D datasets, especially scalar field datasets (e.g., 3D images). However, when rendering datasets with ultra-high spatial resolutions, which occupy massive (out-of-core) storage space, some traditional in-core volume rendering algorithms cannot function because the large input data can hardly be handled in the main memory. Simple modifications based on disk cache I/O do not perform well because of the overheads associated with external memory access. To solve this problem, this paper describes a semi-adaptive partitioning strategy and an efficient out-of-core visualization framework with improved volume rendering algorithms. Under this new partitioning strategy, an out-of-core dataset is spatially divided into small sub-blocks of different sizes, which are organized by a binary space partitioning (BSP) tree. Each sub-block can be loaded into the fast texture memory of the graphics hardware to be rendered by our improved volume rendering algorithms. The final result is obtained by composing the projection images of all sub-blocks after traveling the BSP tree according to the viewpoint. Experimental results indicate that the new methods are effective and efficient for visualizing out-of-core 3D scalar field datasets.